Tabla de conversión binario, octal, decimal y hexadecimal
Binario, octal, decimal y hexadecimal lado a lado, del 0 al 65536.
Sin registro, sin rastreoLas computadoras cuentan en binario, las direcciones de memoria y los colores se escriben en hexadecimal, y los permisos de archivos de Unix son octales. Pasar de una base a otra es una tarea rutinaria más que un problema interesante, y para eso sirve exactamente una tabla de consulta.
Esta página reúne las tablas que vale la pena guardar: la tabla de dieciséis filas que vuelve mecánica la conversión de binario a hexadecimal, el listado completo del 0 al 32, las potencias de dos hasta 2^16 y los valores de byte que aparecen una y otra vez en ASCII, en las máscaras de subred y en UTF-8. Al final hay ejercicios resueltos paso a paso para hacer cada conversión a mano. Todos los valores de aquí los generó un programa, no se escribieron de memoria.
La tabla de 4 bits: la única que vale la pena memorizar
Dieciséis es una potencia de dos, y esa es toda la razón por la que existe el hexadecimal. Un dígito hexadecimal codifica exactamente cuatro dígitos binarios —un nibble— sin resto y sin acarreos entre grupos. Apréndete estas dieciséis filas y toda conversión de binario a hexadecimal se vuelve una consulta en vez de una operación.
| Decimal | Binario (4 bits) | Octal | Hexadecimal |
|---|---|---|---|
| 0 | 0000 | 0 | 0 |
| 1 | 0001 | 1 | 1 |
| 2 | 0010 | 2 | 2 |
| 3 | 0011 | 3 | 3 |
| 4 | 0100 | 4 | 4 |
| 5 | 0101 | 5 | 5 |
| 6 | 0110 | 6 | 6 |
| 7 | 0111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
Tabla de conversión del 0 al 32
Escrita sin ceros a la izquierda, para que veas cuántos bits necesita realmente cada valor. Fíjate dónde salta la cantidad de dígitos: en 2, 4, 8, 16 y 32. Cada potencia de dos agrega un bit.
| Decimal | Binario | Octal | Hexadecimal |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 2 | 10 | 2 | 2 |
| 3 | 11 | 3 | 3 |
| 4 | 100 | 4 | 4 |
| 5 | 101 | 5 | 5 |
| 6 | 110 | 6 | 6 |
| 7 | 111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
| 16 | 10000 | 20 | 10 |
| 17 | 10001 | 21 | 11 |
| 18 | 10010 | 22 | 12 |
| 19 | 10011 | 23 | 13 |
| 20 | 10100 | 24 | 14 |
| 21 | 10101 | 25 | 15 |
| 22 | 10110 | 26 | 16 |
| 23 | 10111 | 27 | 17 |
| 24 | 11000 | 30 | 18 |
| 25 | 11001 | 31 | 19 |
| 26 | 11010 | 32 | 1A |
| 27 | 11011 | 33 | 1B |
| 28 | 11100 | 34 | 1C |
| 29 | 11101 | 35 | 1D |
| 30 | 11110 | 36 | 1E |
| 31 | 11111 | 37 | 1F |
| 32 | 100000 | 40 | 20 |
Potencias de dos
Estos son los números que explican por qué un búfer mide 4096 bytes, por qué un byte sin signo se detiene en 255 y por qué un número de puerto no puede pasar de 65535. En binario una potencia de dos siempre es un único 1 seguido de ceros, y en hexadecimal siempre es 1, 2, 4 u 8 seguido de ceros.
| Potencia | Decimal | Binario | Hexadecimal |
|---|---|---|---|
| 2^0 | 1 | 1 | 1 |
| 2^1 | 2 | 10 | 2 |
| 2^2 | 4 | 100 | 4 |
| 2^3 | 8 | 1000 | 8 |
| 2^4 | 16 | 10000 | 10 |
| 2^5 | 32 | 100000 | 20 |
| 2^6 | 64 | 1000000 | 40 |
| 2^7 | 128 | 10000000 | 80 |
| 2^8 | 256 | 100000000 | 100 |
| 2^9 | 512 | 1000000000 | 200 |
| 2^10 | 1024 | 10000000000 | 400 |
| 2^11 | 2048 | 100000000000 | 800 |
| 2^12 | 4096 | 1000000000000 | 1000 |
| 2^13 | 8192 | 10000000000000 | 2000 |
| 2^14 | 16.384 | 100000000000000 | 4000 |
| 2^15 | 32.768 | 1000000000000000 | 8000 |
| 2^16 | 65.536 | 10000000000000000 | 10000 |
Valores de byte más comunes
Un byte guarda 8 bits, o sea exactamente 256 valores, y se escribe con dos dígitos hexadecimales. Estos son los que de verdad te encuentras al leer un volcado hexadecimal o al depurar un problema de codificación.
| Decimal | Binario (8 bits) | Hexadecimal | Qué es |
|---|---|---|---|
| 0 | 00000000 | 00 | Byte nulo |
| 9 | 00001001 | 09 | Tabulador |
| 10 | 00001010 | 0A | Salto de línea (LF, nueva línea en Unix) |
| 13 | 00001101 | 0D | Retorno de carro (CR) |
| 27 | 00011011 | 1B | Escape — inicia los códigos ANSI de terminal |
| 32 | 00100000 | 20 | Espacio |
| 48 | 00110000 | 30 | Dígito «0» |
| 57 | 00111001 | 39 | Dígito «9» |
| 65 | 01000001 | 41 | Letra «A» |
| 90 | 01011010 | 5A | Letra «Z» |
| 97 | 01100001 | 61 | Letra «a» |
| 122 | 01111010 | 7A | Letra «z» |
| 127 | 01111111 | 7F | DEL — último valor del ASCII de 7 bits |
| 128 | 10000000 | 80 | Primer byte fuera de ASCII; mínimo de INT8 en complemento a dos |
| 160 | 10100000 | A0 | Espacio duro en Latin-1 |
| 191 | 10111111 | BF | Límite superior de los bytes de continuación UTF-8 |
| 192 | 11000000 | C0 | Octeto habitual de máscara de subred (/26) |
| 224 | 11100000 | E0 | Octeto de máscara de subred (/27) |
| 240 | 11110000 | F0 | Octeto de máscara de subred (/28); nibble alto en 1 |
| 254 | 11111110 | FE | Octeto útil más alto en muchas redes |
| 255 | 11111111 | FF | Máximo de UINT8; los ocho bits en 1 |
Cómo convertir a mano, paso a paso
Con tres procedimientos cubres todo. De binario a decimal es una suma, de decimal a binario son divisiones sucesivas, y de binario a hexadecimal es puro agrupamiento: este último no requiere ninguna operación aritmética.
- Binario a decimal: etiqueta cada bit con su potencia de dos, de derecha a izquierda empezando en 2^0, y suma las potencias donde el bit valga 1.
- Decimal a binario: divide entre 2 repetidamente y anota cada resto, hasta que el cociente llegue a 0. Lee los restos de abajo hacia arriba.
- Binario a hexadecimal: rellena con ceros a la izquierda hasta que la longitud sea múltiplo de 4, separa en grupos de cuatro desde la derecha y sustituye cada grupo con la tabla de nibbles de arriba.
- Hexadecimal a binario: sustituye cada dígito hexadecimal por su patrón de cuatro bits y concaténalos. Sin acarreos ni operaciones.
- Binario a octal: igual que con hexadecimal pero en grupos de tres bits, porque 8 es 2^3.
Ejercicios resueltos
Binario a decimal: 10011100
2^7 (128) + 2^4 (16) + 2^3 (8) + 2^2 (4) = 156Decimal a binario: 156
156 ÷ 2 = 78 resto 0
78 ÷ 2 = 39 resto 0
39 ÷ 2 = 19 resto 1
19 ÷ 2 = 9 resto 1
9 ÷ 2 = 4 resto 1
4 ÷ 2 = 2 resto 0
2 ÷ 2 = 1 resto 0
1 ÷ 2 = 0 resto 1
Lee los restos de abajo hacia arriba: 10011100Binario a hexadecimal: 11001010
1100 1010 → C A → 0xCADecimal a binario: 202
202 ÷ 2 = 101 resto 0
101 ÷ 2 = 50 resto 1
50 ÷ 2 = 25 resto 0
25 ÷ 2 = 12 resto 1
12 ÷ 2 = 6 resto 0
6 ÷ 2 = 3 resto 0
3 ÷ 2 = 1 resto 1
1 ÷ 2 = 0 resto 1
Restos de abajo hacia arriba: 11001010
Comprobación: 2^7 (128) + 2^6 (64) + 2^3 (8) + 2^1 (2) = 202Decimal a binario: 45
45 ÷ 2 = 22 resto 1
22 ÷ 2 = 11 resto 0
11 ÷ 2 = 5 resto 1
5 ÷ 2 = 2 resto 1
2 ÷ 2 = 1 resto 0
1 ÷ 2 = 0 resto 1
Restos de abajo hacia arriba: 101101
Comprobación: 2^5 (32) + 2^3 (8) + 2^2 (4) + 2^0 (1) = 45Hexadecimal a decimal: 0x2F
2 × 16 + 15 = 47
Binario a octal: 10011100
010 011 100 → 2 3 4 → 0o234Errores frecuentes
- Los ceros a la izquierda no aportan valor numérico pero sí aportan ancho. 00001010 y 1010 son ambos el decimal 10, pero el primero dice «un byte» y el segundo dice «cuatro bits», y el ancho es justo lo que importa en un protocolo o en una estructura.
- Los prefijos indican la base: 0b para binario, 0o para octal y 0x para hexadecimal. Un 10 pelado es ambiguo, y 0755 en los lenguajes de estilo C es el octal 493, no el decimal 755.
- Los números negativos suelen usar complemento a dos, no un bit de signo. En 8 bits, 11111111 es -1 y 10000000 es -128. Para negar un valor, invierte todos los bits y suma 1.
- Los dígitos hexadecimales de la A a la F no distinguen mayúsculas como valor. #FF0000 y #ff0000 son el mismo color; solo a las guías de estilo les importa.
- El orden de los bytes es un asunto aparte de la base. El valor de 32 bits 0x12345678 se puede guardar como 12 34 56 78 o como 78 56 34 12 según la endianidad, y por eso un volcado hexadecimal a veces se ve desordenado.
Convierte valores fuera de esta tabla
Estas tablas terminan donde termina su utilidad. Para cualquier cosa más grande —una máscara de 32 bits, un fragmento de hash, un entero cualquiera— el Convertidor de Bases de este sitio convierte entre binario, octal, decimal y hexadecimal en cualquier dirección mientras escribes, y muestra las cuatro bases a la vez para que compares tus ejercicios a mano con el resultado. Funciona por completo en tu navegador, sin enviar nada a ningún servidor.