Hexadecimal, binario y decimal: guía para entenderlos
Si programas o estudias informática, tarde o temprano te topas con números en binario o hexadecimal: colores como #FF6600, permisos como 755 o direcciones de memoria como 0xDEADBEEF. En esta guía explicamos qué son estos sistemas de numeración, por qué existen y cómo convertir entre ellos a mano, con ejemplos resueltos paso a paso.
Por qué existen distintos sistemas
El sistema decimal (base 10) es el que usamos a diario, probablemente porque tenemos diez dedos. Los ordenadores, en cambio, trabajan en binario (base 2: solo 0 y 1) porque sus circuitos distinguen con fiabilidad dos estados eléctricos: hay tensión o no la hay. Cada una de esas cifras binarias es un bit, y ocho bits forman un byte.
El problema del binario es que resulta larguísimo para las personas: el número 2026 necesita once bits. Ahí entra el hexadecimal (base 16), que usa los dígitos 0–9 y las letras A–F. Su gracia es que cada dígito hexadecimal equivale exactamente a 4 bits, así que sirve como "taquigrafía" del binario: un byte completo se escribe siempre con dos dígitos hex. Por eso lo verás en colores web, volcados de memoria o direcciones MAC.
La clave de todo: la notación posicional
En cualquier base, el valor de una cifra depende de su posición. En decimal, 3.482 significa 3×1.000 + 4×100 + 8×10 + 2×1: cada posición vale diez veces más que la anterior. En binario cada posición vale el doble que la anterior (1, 2, 4, 8, 16, 32, 64, 128…), y en hexadecimal, dieciséis veces más (1, 16, 256, 4.096…).
Con esa idea, el mismo número se puede escribir en las tres bases:
- Decimal: 173 = 1×100 + 7×10 + 3×1
- Binario: 10101101 = 128 + 32 + 8 + 4 + 1 = 173
- Hexadecimal: AD = 10×16 + 13 = 173
Son tres representaciones del mismo valor. Ninguna base es "más correcta": cada una es cómoda en su contexto.
Cómo se cuenta en cada base
Esta tabla de equivalencias merece memorizarse al menos hasta el 15, porque es la que permite traducir entre binario y hexadecimal de un vistazo:
| Decimal | Binario | Hexadecimal |
|---|---|---|
| 0 | 0000 | 0 |
| 5 | 0101 | 5 |
| 9 | 1001 | 9 |
| 10 | 1010 | A |
| 12 | 1100 | C |
| 15 | 1111 | F |
| 16 | 10000 | 10 |
| 45 | 101101 | 2D |
| 255 | 11111111 | FF |
| 2026 | 11111101010 | 7EA |
Ojo: "10" no significa lo mismo en cada base. En binario vale dos, en decimal diez y en hexadecimal dieciséis. Por eso en programación se usan prefijos: 0b1010 para binario y 0xA para hexadecimal.
Convertir paso a paso
De decimal a binario: divisiones sucesivas
Divide entre 2 una y otra vez, apunta los restos y léelos de abajo arriba. Convirtamos 2026:
2026 en binario
- 2026 ÷ 2 = 1013, resto 0
- 1013 ÷ 2 = 506, resto 1
- 506 ÷ 2 = 253, resto 0 · 253 ÷ 2 = 126, resto 1
- 126 ÷ 2 = 63, resto 0 · 63 ÷ 2 = 31, resto 1
- 31 ÷ 2 = 15, resto 1 · 15 ÷ 2 = 7, resto 1
- 7 ÷ 2 = 3, resto 1 · 3 ÷ 2 = 1, resto 1 · 1 ÷ 2 = 0, resto 1
Leyendo los restos del último al primero: 11111101010. Es decir, 2026 = 0b11111101010.
De binario a decimal: suma de potencias
Asigna a cada bit su valor posicional empezando por 1 a la derecha y duplicando hacia la izquierda; después suma las posiciones donde hay un 1. Para 10101101: 128 + 32 + 8 + 4 + 1 = 173.
De binario a hexadecimal (y vuelta): grupos de 4 bits
Agrupa los bits de 4 en 4 empezando por la derecha y traduce cada grupo con la tabla anterior. Si el grupo de la izquierda queda incompleto, rellénalo con ceros:
11111101010 → 0111 1110 1010 → 7 E A → 0x7EA
El camino inverso es igual de directo: cada dígito hex se expande a sus 4 bits. Esta traducción instantánea es el motivo de que el hexadecimal sea la base preferida para mostrar datos binarios.
De decimal a hexadecimal: divisiones entre 16
Funciona igual que con el binario, pero dividiendo entre 16: 2026 ÷ 16 = 126 con resto 10 (A); 126 ÷ 16 = 7 con resto 14 (E); 7 ÷ 16 = 0 con resto 7. Leyendo de abajo arriba: 7EA. Coincide con el resultado por grupos de bits, como debe ser. Puedes comprobar cualquiera de estos ejercicios con nuestro conversor hex-binario.
Dónde te los encuentras en la práctica
- Colores web: #FF6600 son tres bytes en hex — rojo 0xFF (255), verde 0x66 (102) y azul 0x00 (0). Un naranja intenso.
- Direcciones MAC e IPv6: se escriben en hexadecimal precisamente porque comprimen muchos bits en poco espacio.
- Permisos de Unix/Linux: el famoso chmod 755 usa base 8 (octal), donde cada dígito representa 3 bits de permisos.
- Depuración y memoria: las direcciones y los volcados de memoria se muestran en hex (de ahí valores célebres como 0xDEADBEEF).
- Redes y máscaras: entender que 255 es 11111111 (un byte con todos los bits a 1) aclara de golpe las máscaras de subred.
Errores comunes al convertir
- Leer los restos al revés: en las divisiones sucesivas, el primer resto es el bit menos significativo. Se lee de abajo arriba.
- Agrupar desde la izquierda: los grupos de 4 bits se forman desde la derecha; si empiezas por la izquierda el resultado sale mal salvo que la longitud sea múltiplo de 4.
- Olvidar el contexto de la base: ver "10" y asumir diez. Sin prefijo (0x, 0b) o contexto, un número es ambiguo.
- Confundir mayúsculas y minúsculas: 0xff y 0xFF son el mismo número; la capitalización de A–F no cambia el valor.
- Descuidar el cero: al expandir hex a binario, cada dígito produce exactamente 4 bits. 0x2D es 0010 1101, no 10 1101 recortado por el medio del grupo.
Preguntas frecuentes
¿Los ordenadores calculan en hexadecimal?
No: internamente todo es binario. El hexadecimal es solo una notación cómoda para que las personas leamos y escribamos esos bits sin equivocarnos.
¿Por qué el 255 aparece tanto en informática?
Porque es el valor máximo de un byte: ocho bits a 1 (11111111 = 0xFF). De ahí que los canales de color RGB vayan de 0 a 255 y que aparezca en las máscaras de red.
¿Para qué sirve el octal hoy en día?
Su uso principal actual son los permisos de ficheros en sistemas Unix/Linux, porque cada dígito octal codifica los 3 bits de lectura, escritura y ejecución.
¿Cómo compruebo mis conversiones?
Haz el ejercicio a mano y verifica el resultado con una herramienta: si el valor decimal coincide en ambas direcciones, la conversión es correcta.
Convierte entre hexadecimal, binario, octal y decimal al instante, y comprueba tus ejercicios paso a paso.
Conversor hex-binario →