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
- Escribe un número en cualquiera de los cuatro campos: binario, octal, decimal o hexadecimal.
- Los demás campos se actualizan al instante. Se aceptan prefijos como 0x, 0b y 0o.
- 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.
| Decimal | Hexadecimal | Binario | Octal |
|---|---|---|---|
0 | 0x0 | 0000 | 0o0 |
1 | 0x1 | 0001 | 0o1 |
2 | 0x2 | 0010 | 0o2 |
3 | 0x3 | 0011 | 0o3 |
4 | 0x4 | 0100 | 0o4 |
5 | 0x5 | 0101 | 0o5 |
6 | 0x6 | 0110 | 0o6 |
7 | 0x7 | 0111 | 0o7 |
8 | 0x8 | 1000 | 0o10 |
9 | 0x9 | 1001 | 0o11 |
10 | 0xA | 1010 | 0o12 |
11 | 0xB | 1011 | 0o13 |
12 | 0xC | 1100 | 0o14 |
13 | 0xD | 1101 | 0o15 |
14 | 0xE | 1110 | 0o16 |
15 | 0xF | 1111 | 0o17 |
16 | 0x10 | 0001 0000 | 0o20 |
32 | 0x20 | 0010 0000 | 0o40 |
64 | 0x40 | 0100 0000 | 0o100 |
100 | 0x64 | 0110 0100 | 0o144 |
127 | 0x7F | 0111 1111 | 0o177 |
128 | 0x80 | 1000 0000 | 0o200 |
255 | 0xFF | 1111 1111 | 0o377 |
256 | 0x100 | 0001 0000 0000 | 0o400 |
512 | 0x200 | 0010 0000 0000 | 0o1000 |
1000 | 0x3E8 | 0011 1110 1000 | 0o1750 |
1024 | 0x400 | 0100 0000 0000 | 0o2000 |
4096 | 0x1000 | 0001 0000 0000 0000 | 0o10000 |
65535 | 0xFFFF | 1111 1111 1111 1111 | 0o177777 |
¿Algo no funciona o un resultado parece incorrecto? Informar de un problema con esta herramienta