Conversor de bases numéricas

Convierte entre binario, octal, decimal y hexadecimal.

Acerca de esta herramienta

Escribe un número en binario, octal, decimal o hexadecimal y míralo en todas las demás bases, junto con sus bits agrupados en bytes. Admite enteros arbitrariamente grandes y reconoce los prefijos 0x, 0b y 0o.

Cómo se usa

  1. Escribe un número en cualquiera de los cuatro campos: binario, octal, decimal o hexadecimal.
  2. Los demás campos se actualizan al instante. Se aceptan prefijos como 0x, 0b y 0o.
  3. Mira el panel de bits para ver el valor dividido en bytes.

Preguntas

¿Qué tamaño de número admite?
De cualquier tamaño. Usa BigInt de JavaScript, así que no hay límite de 32 ni de 64 bits y no hay redondeo.
¿Por qué los números hexadecimales empiezan por 0x?
Es una convención de C, que ahora usan la mayoría de los lenguajes, para indicar que los dígitos son hexadecimales. De igual forma, 0b indica binario y 0o, octal.
¿Dónde se sigue usando el octal?
Sobre todo para los permisos de archivo de Unix, donde 755 significa rwxr-xr-x. Cada dígito octal corresponde exactamente a tres bits de permisos.
¿Cómo convierto hexadecimal a texto ASCII?
Esta herramienta convierte números, no cadenas. En un texto hexadecimal, cada par de dígitos es un byte, que se busca en una tabla ASCII: 48 65 6C 6C 6F forma “Hello”. En la línea de comandos, echo 48656c6c6f | xxd -r -p convierte una cadena hexadecimal de nuevo en texto.
¿Puede convertir fracciones o números con decimales?
No, solo números enteros. Las fracciones son complicadas en binario de todos modos: 0.1 en decimal no tiene una representación binaria exacta y se repite infinitamente, por eso 0.1 + 0.2 no da exactamente 0.3 en la mayoría de los lenguajes de programación. Los valores de coma flotante se almacenan en el formato IEEE 754, no como enteros binarios simples.
¿Cuál es el número más grande que cabe en 8, 16, 32 o 64 bits?
Sin signo, es 2ⁿ − 1: 255, 65 535, 4 294 967 295 y 18 446 744 073 709 551 615. Los valores con signo llegan aproximadamente a la mitad, como 2 147 483 647 para 32 bits. Los números de JavaScript solo son exactos hasta 9 007 199 254 740 991, así que esta herramienta usa BigInt para mantener la precisión más allá de esa cifra.

Cómo convertir binario a decimal, y al revés

Cada dígito de un número binario vale una potencia de dos, empezando por 1 a la derecha. Para convertir 1011 a decimal, suma las posiciones que tienen un 1: 8 + 0 + 2 + 1 = 11. El hexadecimal funciona igual con potencias de 16, así que 0x2F es 2 × 16 + 15 = 47. El octal usa potencias de ocho. Una sola regla vale para todas las bases: cada dígito multiplicado por la base elevada a su posición.

Para ir en sentido contrario, divide repetidamente por la base de destino y anota los restos del último al primero. Al dividir 11 por 2 una y otra vez quedan los restos 1, 1, 0 y 1, que leídos al revés dan 1011. Con este conversor de bases numéricas basta con escribir en cualquier campo y los otros tres se actualizan. En código, JavaScript tiene parseInt(text, 2) y n.toString(16), y Python tiene int(text, 2) y hex(n).

¿Por qué los programadores usan hexadecimal?

Un dígito hexadecimal equivale exactamente a cuatro bits, así que dos dígitos hexadecimales describen un byte. Eso hace del hexadecimal una forma compacta y legible de escribir datos binarios: 11111111 es FF, y cualquier valor de 32 bits cabe en ocho caracteres. Lo encontrarás en direcciones de memoria, códigos de color como #FF8800, hashes, direcciones MAC, puntos de código Unicode como U+1F680 y los volcados de bytes que muestran herramientas como xxd y hexdump.

El panel de bits muestra esa relación directamente. El valor se rellena hasta completar bytes enteros, y cada grupo de ocho bits aparece con su valor hexadecimal de dos dígitos debajo. 48879 se convierte en 10111110 11101111, con las etiquetas BE y EF, y por eso se lee como 0xBEEF. Así es fácil comprobar flags, máscaras de bits y límites de bytes. La Calculadora de subredes aplica la misma vista binaria a direcciones IPv4 y máscaras de red.

Cómo funcionan los números negativos en binario: complemento a dos

Los ordenadores suelen almacenar los enteros con signo en complemento a dos. Para escribir −1 en 8 bits, invierte todos los bits de 1 y suma uno: 00000001 pasa a ser 11111110, y al sumar uno da 11111111, o 0xFF. El bit superior actúa como signo, así que un valor de 8 bits con signo va de −128 a 127, mientras que los mismos bits leídos sin signo van de 0 a 255. El patrón de bits es idéntico; solo cambia la interpretación.

Este conversor trabaja con enteros simples, no con registros de ancho fijo. Escribe -5 y obtendrás -101 en binario y -5 en hexadecimal, con el signo menos delante en lugar de un patrón en complemento a dos. Para obtener el patrón de 8 bits de un número negativo, suma antes 256: −5 + 256 = 251, que es 0xFB. Para 32 bits, suma 4294967296. Los espacios y los guiones bajos se ignoran, así que 1111_1011 funciona como entrada.

Tabla de decimal, hexadecimal, binario y octal

Los números que más vas a consultar, en las cuatro bases.

DecimalHexadecimalBinarioOctal
00x000000o0
10x100010o1
20x200100o2
30x300110o3
40x401000o4
50x501010o5
60x601100o6
70x701110o7
80x810000o10
90x910010o11
100xA10100o12
110xB10110o13
120xC11000o14
130xD11010o15
140xE11100o16
150xF11110o17
160x100001 00000o20
320x200010 00000o40
640x400100 00000o100
1000x640110 01000o144
1270x7F0111 11110o177
1280x801000 00000o200
2550xFF1111 11110o377
2560x1000001 0000 00000o400
5120x2000010 0000 00000o1000
10000x3E80011 1110 10000o1750
10240x4000100 0000 00000o2000
40960x10000001 0000 0000 00000o10000
655350xFFFF1111 1111 1111 11110o177777

¿Algo no funciona o un resultado parece incorrecto? Informar de un problema con esta herramienta