Convertidor de base numérica

Convierte entre binario, octal, decimal y hexadecimal.

Tus datos no salen de tu dispositivo
Binario (base 2)
Octal (base 8)
Decimal (base 10)
Hexadecimal (base 16)

Entender las bases numéricas

Una base numérica (o radix) determina cuántos dígitos únicos sirven para representar los números. La más familiar es la base 10 (decimal), que usa los dígitos 0-9. Los ordenadores usan de forma nativa la base 2 (binaria), solo con 0 y 1.

Preguntas frecuentes

¿Admite números muy grandes?

Sí. Esta herramienta usa el BigInt de JavaScript, que admite enteros arbitrariamente grandes sin pérdida de precisión. Puedes convertir números de cientos de cifras.

¿Por qué es importante el binario en informática?

Los ordenadores usan señales eléctricas de dos estados (encendido/apagado), que corresponden de forma natural al binario (1/0). Cualquier dato · texto, imagen, vídeo · se guarda y procesa en última instancia en binario.

Cómo funciona la notación posicional

Un sistema numérico posicional representa un número usando un conjunto de tamaño fijo de símbolos de dígitos, donde la posición de cada dígito determina su peso. El peso de la posición i (contada desde la derecha, empezando en cero) es base^i. El valor del número es la suma de digit × base^i en todas las posiciones. La cadena 352 en base 10 significa 3×100 + 5×10 + 2×1 = 352. La cadena 1011 en base 2 significa 1×8 + 0×4 + 1×2 + 1×1 = 11 en decimal.

La notación posicional es una de las dos grandes invenciones en la representación de números. La otra es la no posicional (los números romanos, el hierático egipcio), donde los símbolos tienen valores fijos con independencia de la posición. Los sistemas posicionales comprimen; los no posicionales no: el número 1888 ocupa cuatro dígitos en decimal, pero ocho caracteres en romano: MDCCCLXXXVIII.

Una breve historia de las bases

Los babilonios usaban un sistema posicional en base 60 (sexagesimal) al menos desde el período paleobabilónico, alrededor de 1900-1600 a. C. Las tablillas cuneiformes de esa época ya usan la notación posicional. ¿Por qué 60? Tiene un número excepcionalmente alto de divisores pequeños (1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60), lo que facilitaba la aritmética de fracciones en un mundo anterior a las fracciones decimales. El legado babilónico sigue en tu bolsillo: el tiempo (60 segundos en un minuto, 60 minutos en una hora) y los ángulos y las coordenadas geográficas (360 grados en un círculo, 60 minutos de arco por grado, 60 segundos de arco por minuto) son descendientes directos. Cuando lees un reloj o una latitud, estás leyendo en sexagesimal.

El sistema decimal posicional tal y como lo conocemos lo desarrollaron los matemáticos indios en los primeros siglos de nuestra era. El salto conceptual que lo distingue de los ábacos de cálculo anteriores es un símbolo escrito para el cero que actúa como marcador de posición. El primer uso inequívoco del cero en un contexto posicional se atribuye generalmente a Brahmagupta (628 d. C.), cuyo tratado Brāhmasphuṭasiddhānta dio reglas para la aritmética con el cero. El manuscrito Bakhshali muestra un uso aún anterior de un punto (bindu) como marcador de posición.

El sistema decimal viajó de la India al mundo islámico en los siglos VIII-IX; el polímata persa al-Khwārizmī escribió Sobre el cálculo con los números hindúes alrededor del 825 d. C. («algoritmo» y «álgebra» son descendientes etimológicos directos de su nombre y de los títulos de sus libros). Europa se quedó atrás. Leonardo de Pisa, conocido como Fibonacci, introdujo formalmente los números indoarábigos en la Europa latina en Liber Abaci (1202), demostrando su superioridad sobre los números romanos. Los números romanos perduraron en la contabilidad europea hasta el siglo XVI.

Gottfried Wilhelm Leibniz describió un sistema numérico completamente binario en su artículo de 1703 Explication de l'arithmétique binaire, aunque su motivación principal era filosófica (la correspondencia con el I Ching) más que práctica. El salto a la computación binaria llegó con la tesis de máster de Claude Shannon de 1937 en el MIT, «A Symbolic Analysis of Relay and Switching Circuits», que demostró que el álgebra de Boole podía modelar redes de relés eléctricos, lo que convirtió el binario en el lenguaje natural de la lógica digital.

Los algoritmos de conversión

De decimal a otra base: división repetida. Para convertir un entero decimal N a la base b, divide N entre b, anota el resto, sustituye N por el cociente y repite hasta que el cociente sea 0. Los restos leídos de abajo arriba son los dígitos en base b. Ejemplo resuelto para convertir 156 a binario: 156÷2 = 78 r0, 78÷2 = 39 r0, 39÷2 = 19 r1, 19÷2 = 9 r1, 9÷2 = 4 r1, 4÷2 = 2 r0, 2÷2 = 1 r0, 1÷2 = 0 r1; leyendo los restos de abajo arriba: 10011100. Verifica: 128 + 16 + 8 + 4 = 156.

De otra base a decimal: el método de Horner. Empieza con 0; para cada dígito de izquierda a derecha, multiplica el total acumulado por la base y suma el nuevo dígito. Ejemplo resuelto para el hexadecimal 1F4: 0×16 + 1 = 1, luego 1×16 + 15 = 31, luego 31×16 + 4 = 500.

Ambos algoritmos se ejecutan en tiempo lineal respecto al número de dígitos, y el BigInt de JavaScript los implementa internamente, razón por la cual esta herramienta no tiene límite de precisión. Un número de 200 dígitos se convierte limpiamente entre dos bases cualesquiera sin pérdida por redondeo, igual que lo haría una calculadora con aritmética de enteros de precisión arbitraria.

Las cuatro bases que importan en la informática

Potencias de 2 que conviene memorizar

PotenciaDecimalHexadecimalPor qué importa
2⁸2560x100Un byte; valor máximo de un canal de 8 bits (RGB)
2¹⁰1,0240x400«1K» en el contexto de la informática
2¹⁶65,5360x10000Tamaño del BMP de UTF-16; máximo de un entero de 16 bits
2²⁰1,048,5760x100000«1M» en el contexto de la informática
2²⁴16,777,2160x1000000RGB de 24 bits («16,7 millones de colores»)
2³²~4300 millones0x100000000Máximo de un entero de 32 bits sin signo; espacio de direcciones IPv4
2⁶⁴~1.8×10¹⁹0x100…Máximo de un entero de 64 bits; muy por encima de la precisión de punto flotante

Cuándo recurrirías a un conversor de bases

Otras bases que conviene conocer

Convenciones de prefijos en el código fuente

La mayoría de los lenguajes modernos usan el mismo conjunto de prefijos literales para desambiguar la base en el código fuente:

Más preguntas

¿Y los números negativos?

Los ordenadores representan los enteros negativos usando el complemento a dos: invierte todos los bits y suma 1. Así, en complemento a dos de 8 bits, −1 es 11111111 (0xFF), −5 es 11111011 (0xFB) y −128 es 10000000 (0x80). El bit más significativo indica el signo. Esta herramienta muestra los enteros negativos con un signo menos inicial en lugar de una representación en complemento a dos, porque esta última solo tiene sentido con un ancho de bits fijo y, dado que la herramienta usa BigInt de precisión arbitraria, no hay un ancho fijo con el que interpretarla.

¿Por qué el hexadecimal usa las letras A-F?

Porque la base 16 necesita 16 símbolos de dígito distintos y los dígitos decimales 0-9 solo proporcionan diez. La convención de usar A-F (sin distinción de mayúsculas y minúsculas) para 10-15 la popularizó el IBM System/360 en la década de 1960 y se estandarizó en todo el sector. Los sistemas anteriores experimentaron con otros glifos (el G-15 de Bendix usaba u, v, w, x, y, z), pero A-F se impuso.

¿Puede esta herramienta manejar fracciones?

No, es solo de enteros. La conversión de bases fraccionarias es más compleja porque la mayoría de las fracciones decimales no tienen una representación exacta en binario (el famoso problema de punto flotante 0.1 + 0.2 ≠ 0.3). Para la inspección a nivel de bits de los números de punto flotante, un visualizador de IEEE 754 específico es la herramienta adecuada.

¿Se envía algo a un servidor?

No. Las conversiones se ejecutan en tu navegador usando la aritmética BigInt nativa de JavaScript. Nada de lo que introduces sale de la página; la herramienta funciona sin conexión una vez cargada.

Herramientas relacionadas