Saltar al contenido
Estudios

Conversor de binario, decimal y hexadecimal

Convierte entre binario, octal, decimal, hexadecimal y cualquier base hasta la 36, con precisión exacta.

Se admiten los prefijos 0b, 0o y 0x, y los guiones bajos como separador.

Cualquier base entre 2 y 36, por si necesitas una que no esté arriba.

Resultado

En binario

1111 1111

Ocupa 8 bits.

Binario · base 2

0b11111111

Octal · base 8

0o377

Decimal · base 10

255

Hexadecimal · base 16

0xFF

Bits necesarios

8

Dígitos en hexadecimal

2

La conversión usa enteros de precisión arbitraria, así que un número de 64 bits o más sale exacto. Con aritmética de coma flotante, a partir de 253 el resultado sería parecido pero equivocado.

Se procesa en tu navegador. Lo que escribes no se envía a ningún servidor.

Para qué sirve

Escribimos los números en base 10 por costumbre, no por necesidad: diez símbolos y cada posición vale diez veces más que la anterior. Cambiar de base es cambiar cuántos símbolos hay disponibles, y el número sigue siendo exactamente el mismo. Doscientos cincuenta y cinco es 255 en decimal, FF en hexadecimal y 11111111 en binario.

El binario aparece en todo lo que toca un ordenador por dentro, porque un circuito distingue bien entre dos estados y mal entre diez. El hexadecimal existe por comodidad: cada dígito equivale exactamente a cuatro bits, así que convertir entre ambos es agrupar de cuatro en cuatro, sin cálculo.

Fuera de la informática, las bases se estudian en matemáticas y aparecen en los permisos de archivos, en las máscaras de red, en los colores CSS y en cualquier sitio donde haga falta empaquetar información en pocos caracteres.

Cómo se calcula

Cada dígito vale su valor multiplicado por la base elevada a su posición, contando desde cero por la derecha. Sumando todos esos productos se obtiene el valor en decimal.

El camino inverso es dividir repetidamente entre la base y quedarse con los restos: leídos de abajo arriba, forman el número en la base de destino.

Esta herramienta usa enteros de precisión arbitraria. Con aritmética de coma flotante, a partir de 2⁵³ los enteros dejan de representarse de forma exacta y una máscara de 64 bits saldría convertida en un número parecido pero equivocado, sin ningún aviso.

valor = Σ dígitoᵢ × baseⁱ
dígitoᵢ
el dígito que ocupa la posición i
i
posición contada desde cero por la derecha

De cualquier base a decimal.

divisiones sucesivas entre la base → restos de abajo arriba

De decimal a cualquier base.

1 dígito hexadecimal = 4 bits

Por eso hexadecimal y binario se convierten agrupando, sin necesidad de operar.

Ejemplo resuelto

El número 255 en las cuatro bases

Número
255 en decimal
  1. A binario: 255 / 2 = 127 resto 1; 127 / 2 = 63 resto 1; y así hasta llegar a cero. Los restos leídos al revés dan 11111111.
  2. Son ocho unos, es decir, ocho bits: 255 es el mayor número que cabe en un byte.
  3. A hexadecimal: se agrupan los bits de cuatro en cuatro. 1111 es F y 1111 es F, así que 255 es FF.
  4. A octal: agrupando de tres en tres, 011 111 111 da 377.
  5. Comprobación en decimal: 1×128 + 1×64 + 1×32 + 1×16 + 1×8 + 1×4 + 1×2 + 1×1 = 255.

255 (decimal) = 11111111 (binario) = 377 (octal) = FF (hexadecimal)

Las bases habituales y dónde aparecen

A partir de la base 11 hacen falta más de diez símbolos, así que se usan letras: la A vale 10, la B vale 11, y así hasta la Z en la base 36.

BaseNombreSímbolosDónde se ve
2Binario0 1Máscaras de bits, permisos, electrónica digital
8Octal0-7Permisos de archivos en Unix (chmod 755)
10Decimal0-9El de siempre
16Hexadecimal0-9 A-FColores CSS, direcciones de memoria, resúmenes hash

Los prefijos que verás pegados al número

En la mayoría de lenguajes de programación, un prefijo indica la base para que no haya ambigüedad: 0b para binario, 0o para octal y 0x para hexadecimal. Sin él, «10» podría ser dos, ocho, diez o dieciséis.

Esta herramienta los acepta y comprueba que coincidan con la base elegida: si pegas 0b1010 habiendo seleccionado hexadecimal, avisa en lugar de interpretarlo mal.

Por qué importa la precisión exacta

JavaScript representa los números con coma flotante de doble precisión, que garantiza enteros exactos solo hasta 9.007.199.254.740.991, es decir, 2⁵³ − 1. Por encima de ahí las conversiones empiezan a devolver valores redondeados.

Eso es justo lo que ocurre con identificadores de 64 bits, marcas de tiempo en nanosegundos o máscaras largas. Aquí la conversión se hace con enteros de precisión arbitraria, así que el resultado es exacto sea cual sea el tamaño.

Preguntas frecuentes

¿Cómo paso un número de decimal a binario a mano?

Divide entre 2 repetidamente y anota el resto de cada división. Cuando el cociente llegue a cero, lee los restos de abajo arriba y ese es el número en binario. Por ejemplo, 13 da restos 1, 0, 1, 1, que leídos al revés son 1101.

¿Por qué se usa hexadecimal en informática?

Porque cada dígito hexadecimal equivale exactamente a cuatro bits, así que un byte cabe en dos dígitos. Eso lo hace mucho más compacto que el binario y directamente traducible sin operar: basta agrupar los bits de cuatro en cuatro. Escribir una dirección de memoria en binario ocuparía cuatro veces más y sería imposible de leer.

¿Qué significa el 0x delante de un número?

Es el prefijo que indica que lo que sigue está en hexadecimal, y viene del lenguaje C. Así 0xFF es 255 y no doscientos cincuenta y cinco mil. Existen equivalentes para las otras bases: 0b para binario y 0o para octal en la mayoría de lenguajes modernos.

¿Se pueden convertir números negativos o con decimales?

Los negativos sí: se convierte la magnitud y se mantiene el signo. Los decimales no: esta herramienta trabaja con enteros. La parte fraccionaria en otras bases requiere un tratamiento distinto y casi ningún uso práctico lo necesita.

¿Hasta qué base se puede llegar?

Hasta la 36, que es el límite natural usando los diez dígitos y las veintiséis letras del alfabeto latino. Por encima harían falta símbolos adicionales sin convención establecida. Puedes indicar cualquier base entre la 2 y la 36 en el campo de base adicional.

Fuentes

Toda la información de esta página se refiere a: Conversor de binario, decimal y hexadecimal.