Desarrollo

Conversor de binario, hexadecimal, octal y decimal

Escribe en cualquier campo y el resto se actualiza. La conversión usa enteros de precisión arbitraria, así que un número de 200 dígitos vuelve exacto en lugar de redondeado, que es justo donde la mayoría de los conversores rápidos se rinde en silencio.

8Bits
1Bytes
3Dígitos decimales
uint8Tipo más pequeño

De 2 a 36. Los dígitos van de 0 a 9 y luego de la a a la z.

Ancho fijo y complemento a dos
AnchoGuardado como hexLeído como sin signo

Qué es en realidad una base

Todo sistema de numeración posicional funciona igual: cada posición vale la base por la posición que tiene a su derecha. En decimal, 255 significa dos centenas, cinco decenas y cinco unidades. En binario, 11111111 significa una unidad de cada potencia de dos desde 128 hasta 1, y da los mismos 255. La cantidad no cambia en nada. Lo único que cambia es la notación.

El hexadecimal existe por una sola razón: 16 es 2 elevado a la cuarta, así que un dígito hexadecimal corresponde a exactamente cuatro bits y nunca queda a caballo entre dos grupos. Eso hace que FF y 11111111 sean intercambiables de forma mecánica, un dígito a la vez, sin hacer ninguna cuenta. Por eso los volcados de memoria, los códigos de color y las direcciones MAC se escriben en hexadecimal: es binario que se puede leer en voz alta.

El octal agrupa tres bits en lugar de cuatro. Sobrevive sobre todo en los permisos de archivos de Unix, donde chmod 755 son tres dígitos octales y cada uno son tres bits de permiso: 7 es 111, lectura, escritura y ejecución; 5 es 101, lectura y ejecución, sin escritura. Una vez que ves los bits, los números dejan de parecer arbitrarios.

Por qué esta herramienta no usa parseInt

La forma obvia de construir un conversor de bases en un navegador es parseInt(s, base) y Number.prototype.toString(base). Los dos pasan por un número de punto flotante de doble precisión, que guarda enteros de forma exacta solo hasta 2 elevado a la 53, alrededor de nueve mil billones. De ahí en adelante, los dígitos se reemplazan en silencio por los del valor representable más cercano.

La demostración famosa es que 9007199254740993 no se puede representar, así que un conversor hecho de esa manera devuelve 9007199254740992 sin quejarse. Esta herramienta analiza y divide con BigInt, dígito por dígito, así que un hash, un UUID leído como entero o un valor de prueba de 300 dígitos se convierten de forma exacta. No hay más límite que el tiempo que estés dispuesto a esperar.

El complemento a dos, y por qué hay un negativo de más

El hardware no tiene signo menos. Un entero con signo de ancho fijo guarda los negativos dando la vuelta: en 8 bits, -1 se guarda como 255, que es FF. La regla es tomar el valor módulo 2 elevado al ancho y leer el bit más alto como el signo. Esa única convención permite que el mismo circuito de suma sirva para números con signo y sin signo, y por eso se impuso.

También explica una asimetría que toma por sorpresa a mucha gente. Un entero con signo de 8 bits va de -128 a 127, no de -128 a 128. El cero ocupa uno de los lugares positivos, así que hay exactamente un valor negativo más que positivos. Negar el número más negativo desborda y vuelve a dar el mismo número. El panel de arriba muestra cómo se ve el valor actual en 8, 16, 32 y 64 bits, y dice con todas las letras cuándo no entra.

Base64 no es base 64

A pesar del nombre, Base64 no es un sistema de numeración posicional y esta herramienta no lo produce. Es una codificación de binario a texto: toma tres bytes, parte los 24 bits en cuatro grupos de seis y asigna a cada grupo uno de 64 caracteres imprimibles. Trabaja sobre un flujo de bytes, no sobre el valor de un número, y por eso el codificador Base64 es una cosa completamente aparte.

Lo que esta herramienta no hace

Preguntas frecuentes

¿Cómo convierto binario a hexadecimal a mano?

Parte el binario en grupos de cuatro bits empezando por la derecha, rellena con ceros el grupo de la izquierda y escribe cada grupo como un dígito hexadecimal. 11111111 queda 1111 1111, que es F y F, o sea FF. Funciona porque 16 es exactamente 2 elevado a la cuarta.

¿Maneja números mayores que 2^53?

Sí, de forma exacta y con cualquier cantidad de dígitos. La conversión usa aritmética BigInt en lugar de parseInt, que pasa por un punto flotante y empieza a perder dígitos por encima de unos nueve mil billones. Pega un número de 100 dígitos y te los devuelve todos.

¿Por qué chmod usa octal?

Porque los permisos vienen en grupos de tres bits: lectura, escritura y ejecución. Un dígito octal son exactamente tres bits, así que 755 es 111 101 101, es decir acceso completo para el dueño y lectura más ejecución para todos los demás.

¿Puede convertir decimales como 3.75 a binario?

No, solo enteros. La mayoría de las fracciones no termina en binario, así que habría que cortar la respuesta en algún punto arbitrario. Esa expansión que se repite es también la razón por la que 0.1 más 0.2 no da exactamente 0.3 en casi todos los lenguajes de programación.

¿Base64 es lo mismo que base 64?

No. Base64 es una codificación de texto que asigna un carácter imprimible a cada seis bits de un flujo de bytes. No trata la entrada como un número, así que un conversor de bases no puede producirlo.

Última actualización 19 de septiembre de 2026