BrowserTools
Publicidad
Inicio / Conversores / Conversor de bases numéricas (binario, octal, decimal, hex)

Conversor de bases numéricas (binario, octal, decimal, hex)

Convierte números entre binario, octal, decimal, hexadecimal y cualquier base personalizada del 2 al 36.

Cargando Conversor de bases numéricas (binario, octal, decimal, hex)… Si no ocurre nada, activa JavaScript.

Los sistemas numéricos posicionales representan los números mediante un conjunto fijo de símbolos de dígitos, donde el valor de cada dígito depende de su posición. Los humanos desarrollamos de forma natural la aritmética en base 10 (decimal), casi con toda seguridad porque tenemos diez dedos. Pero los ordenadores digitales se construyen con transistores que solo pueden existir en dos estados, encendido o apagado, lo que convierte la base 2 (binario) en el lenguaje natural del hardware informático. Cada número, instrucción y fragmento de texto almacenado en cualquier ordenador del mundo se codifica en última instancia como una secuencia de unos y ceros. Las demás bases, octal (base 8) y hexadecimal (base 16), surgieron como una abreviatura cómoda del binario: un dígito octal representa exactamente tres dígitos binarios, y un dígito hex representa exactamente cuatro, lo que las hace mucho más compactas para que un humano lea datos binarios.

Ejemplos

Entrada 255 (decimal)
Salida FF (hex) · 11111111 (binary) · 377 (octal)
Entrada 0xFF (hex)
Salida 255 (decimal)
Entrada 1010 (binary)
Salida 10 (decimal)

Preguntas frecuentes

¿Se envía algún dato a un servidor cuando uso esta herramienta?
No. Todas las conversiones de base se ejecutan enteramente dentro de tu navegador usando aritmética BigInt de JavaScript. Ningún número ni valor que introduzcas se transmite jamás a ningún servidor, lo que hace seguro usarla con direcciones, tokens o cualquier dato numérico sensible.
¿Por qué los ordenadores usan binario en lugar de decimal?
Los ordenadores digitales se construyen con transistores, que son interruptores electrónicos que están encendidos (representando un 1) o apagados (representando un 0). Usar solo dos estados hace que el hardware sea extremadamente fiable y resistente al ruido: es mucho más fácil distinguir entre un voltaje alto y uno bajo que entre diez niveles de voltaje distintos. El binario es el sistema numérico posicional más simple posible, y encaja a la perfección con la realidad física del funcionamiento de los circuitos digitales.
¿Por qué se usa el hexadecimal para los códigos de color y las direcciones de memoria?
Cada byte de datos contiene 8 bits y puede representar 256 valores (0–255). Dos dígitos hexadecimales pueden representar exactamente esos mismos 256 valores (00–FF), lo que convierte el hex en una forma compacta y sin pérdidas de expresar bytes. Un color RGB de 24 bits son tres bytes, así que cabe perfectamente en seis dígitos hex. Una dirección de memoria de 64 bits son ocho bytes, o dieciséis dígitos hex. Las representaciones binarias de los mismos valores serían cuatro veces más largas y mucho más difíciles de leer para un humano.
¿Qué tienen que ver los números octales con los permisos de archivo de Unix?
Los permisos de archivo de Unix constan de tres grupos de tres bits cada uno, propietario, grupo y otros, donde cada bit controla el acceso de lectura, escritura o ejecución. Tres bits pueden representar valores del 0 al 7, lo que encaja perfectamente con un único dígito octal. Así, chmod 755 significa que el propietario tiene 7 (rwx = 111 en binario), el grupo tiene 5 (r-x = 101) y los demás tienen 5. Se eligió el octal porque encajaba de forma natural con los grupos de 3 bits de los permisos de Unix.
¿Puedo convertir números muy grandes sin pérdida de precisión?
Sí. Esta herramienta usa BigInt de JavaScript, que maneja enteros de tamaño arbitrario con precisión exacta. Los números estándar de JavaScript (dobles IEEE-754) solo pueden representar de forma exacta enteros de hasta 2^53 - 1 (9.007.199.254.740.991). BigInt no tiene ese límite, así que puedes convertir con seguridad claves criptográficas de 256 bits, valores hash grandes o cualquier otro entero grande sin ningún redondeo.
¿Cuál es la historia de la notación hexadecimal en la informática?
La notación hexadecimal en informática la popularizó IBM en los años sesenta con la introducción de la arquitectura IBM System/360, que usaba bytes de 8 bits. Antes del System/360, algunas máquinas usaban caracteres de 6 bits y el octal era en realidad más común. Una vez que los bytes de 8 bits se convirtieron en el estándar universal, perfectamente divisibles en dos nibbles de 4 bits, el hexadecimal se convirtió en la abreviatura natural. El prefijo 0x para los literales hex lo introdujo el lenguaje de programación C a principios de los años setenta y lo ha adoptado prácticamente todos los lenguajes desde entonces.
¿Hay casos límite con los ceros a la izquierda o los números muy pequeños?
En los sistemas numéricos posicionales, los ceros a la izquierda no cambian el valor de un número: 007 en decimal sigue siendo 7. Sin embargo, en algunos contextos de programación, un cero a la izquierda tiene un significado específico: en C, Python 2 y JavaScript, un literal numérico que empieza por 0 seguido de los dígitos 0–7 se interpreta como un número octal, no decimal. Por ejemplo, 010 en C significa 8, no 10. Esta es una fuente común de errores y por eso Python moderno exige el prefijo explícito 0o para los literales octales.
¿Admite esta herramienta el complemento a dos para los números negativos?
La herramienta muestra los números negativos con un prefijo de signo menos, pero no calcula las representaciones en complemento a dos. El complemento a dos depende del tamaño de palabra: el mismo valor -1 se representa como 0xFF en 8 bits, 0xFFFF en 16 bits y 0xFFFFFFFF en 32 bits. Como el tamaño de palabra previsto depende del contexto, tendrías que aplicar tú mismo la máscara de bits adecuada después de obtener la representación positiva con esta herramienta.
¿Qué conversiones de base merece la pena saberse de memoria?
Unas cuantas son inestimables: 0xFF = 255 (valor máximo de un solo byte), 0x80 = 128 (punto medio de un byte), 0x10 = 16 decimal, 0x100 = 256. En binario, 1111 = 15 = 0xF, y saber que cada dígito hex equivale exactamente a cuatro dígitos binarios (nibble) es el atajo más útil para leer volcados hex y direcciones de memoria.
¿Cuál es un malentendido habitual de los principiantes sobre los números binarios?
Un concepto erróneo muy común es que los números binarios son de algún modo versiones 'menos precisas' o 'aproximadas' de los números decimales. En realidad, para los enteros, la conversión entre bases es siempre exacta: 10 en decimal es siempre exactamente 1010 en binario, sin ningún redondeo. El problema de precisión solo surge con los números fraccionarios (0.1 en decimal no puede representarse de forma exacta en binario), que es el origen de los famosos errores de redondeo de coma flotante en JavaScript como 0.1 + 0.2 === 0.30000000000000004.

Acerca de Conversor de bases numéricas (binario, octal, decimal, hex)

Los desarrolladores se topan con múltiples bases constantemente. El hexadecimal está por todas partes: los colores CSS (#ff6600), las direcciones de memoria en los depuradores (0x7ffee4b3c8d0), los números mágicos de los formatos de archivo (0xFF 0xD8 para JPEG), los permisos de archivo de Unix en forma numérica (0755) y las direcciones MAC de red usan todos notación hex. El binario es esencial para entender las operaciones a nivel de bits, los campos de banderas, las máscaras de subred de red y la codificación de datos. El octal aparece en las cadenas de modo de permisos de archivo de Unix, el familiar chmod 755 o chmod 644, y en algunos protocolos de comunicación heredados. La base 36 (que usa los dígitos 0–9 y las letras A–Z) se emplea en los acortadores de URL y en los esquemas de identificadores únicos que necesitan cadenas compactas e insensibles a mayúsculas.

Este conversor acepta un valor en cualquier base del 2 al 36 y lo muestra simultáneamente en binario, octal, decimal, hexadecimal y cualquier base personalizada que especifiques. El cálculo usa el tipo BigInt de JavaScript, que admite enteros de precisión arbitraria, por lo que no hay límite superior para el tamaño del número que puedes convertir, a diferencia del tipo Number estándar, que pierde precisión más allá de 2^53. Todo el procesamiento se ejecuta en tu navegador sin comunicación con ningún servidor.

Algunos matices que conviene tener en cuenta: los dígitos hexadecimales usan las letras A–F (o a–f) para los valores 10–15, y las mayúsculas o minúsculas no tienen significado semántico, pero las convenciones difieren: los registros de la CPU se muestran tradicionalmente en mayúsculas, mientras que los colores CSS suelen escribirse en minúsculas. Al introducir valores binarios, ten cuidado con los ceros a la izquierda: son válidos y se conservan en la visualización, pero no afectan al valor numérico. La notación en complemento a dos, que se usa para representar enteros negativos en el hardware, no la produce esta herramienta porque su salida depende del tamaño de palabra (8 bits, 16 bits, 32 bits, 64 bits) del sistema de destino.

De los dedos a los transistores: por qué el mundo cuenta en base 16

Los humanos hemos usado la base 10 durante miles de años casi con toda seguridad simplemente porque nacimos con diez dedos. La evidencia arqueológica apunta a sistemas de conteo que se remontan al menos a 40.000 años, y los babilonios desarrollaron un sofisticado sistema en base 60 (sexagesimal) hacia el año 2000 a. C., una elección que aún resuena en nuestros minutos de 60 segundos y en los círculos de 360 grados. El sistema decimal que usamos hoy se formalizó en la India hacia los siglos V–VI d. C. con la invención de la notación posicional y el concepto del cero, y luego se transmitió a Europa a través de los matemáticos árabes, dándonos los numerales indoarábigos que usamos hoy.

La adopción del binario en la informática no era inevitable. La máquina analítica mecánica del siglo XIX de Charles Babbage usaba decimal. Las propuestas informáticas de principios del siglo XX exploraron la base 3 (ternaria) e incluso sistemas electrónicos en base 10. Unos ingenieros soviéticos de la Universidad Estatal de Moscú llegaron a construir un ordenador ternario funcional, el Setun, en 1958, argumentando que era más eficiente que el binario. Pero el binario acabó imponiéndose porque requería la menor complejidad de ingeniería: un transistor está encendido o apagado, sin más. Cualquier estado adicional implica una calibración de voltaje más cuidadosa, más calor y más errores.

El hexadecimal se convirtió en la representación dominante legible por humanos de los datos binarios gracias al System/360 de IBM de 1964, que estandarizó el byte de 8 bits como la unidad fundamental de información. Una vez que los bytes fueron universales, que dos dígitos hex se correspondieran exactamente con un byte resultó irresistible para los ingenieros que leían volcados de memoria y valores de registros. El prefijo 0x para marcar los literales hex lo introdujo el lenguaje C hacia 1972 y se extendió a prácticamente todos los lenguajes principales que vinieron después: C++, Java, Python, JavaScript, Go, Rust, Swift y más. Hoy, el hex está tan arraigado en la cultura informática que los diseñadores de color, los ingenieros de red y los investigadores de seguridad piensan y se comunican en base 16 con total naturalidad.

Publicidad
Publicidad
Publicidad