El código que esconden tus colores favoritos
¿Sabías que cuando eliges un color en una aplicación web o programas un microcontrolador como un Arduino, estás usando casi con seguridad el sistema hexadecimal? Aunque suene a un concepto sacado de una novela de ciencia ficción, el hexadecimal es una herramienta matemática que usas a diario sin darte cuenta. Cada vez que ves un color representado como #FF5733 o configuras una dirección de memoria en un ordenador, estás frente a un número hexadecimal.
Pero vayamos al grano: el hexadecimal es un sistema de numeración en base 16. Mientras que nosotros contamos normalmente en base 10 (del 0 al 9), los ordenadores trabajan internamente en binario (base 2). El hexadecimal actúa como un puente perfecto entre ambos, porque con un solo dígito hexadecimal podemos representar exactamente cuatro dígitos binarios. Esto lo hace compacto, legible y extremadamente útil en informática, electrónica y programación.
En este artículo no solo vas a entender qué es un hexadecimal, sino que aprenderás a convertir entre binario, decimal y hexadecimal como un profesional. Al final, tendrás claros los resultados de aprendizaje y podrás aplicar este conocimiento en tus proyectos académicos o profesionales.
Definición formal del sistema hexadecimal
Bases de la numeración: repaso rápido
Para entender el hexadecimal, primero debemos recordar qué es una «base» en un sistema de numeración. Un sistema en base *n* utiliza *n* símbolos diferentes para representar cantidades.
- Sistema decimal (base 10): usa los dígitos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
- Sistema binario (base 2): usa solo 0 y 1.
- Sistema octal (base 8): usa 0 al 7.
- Sistema hexadecimal (base 16): necesita 16 símbolos distintos.
Los símbolos hexadecimales
Como nuestro sistema decimal solo tiene 10 dígitos, para la base 16 necesitamos 6 símbolos adicionales. La convención universal (hereda del estándar IEEE) usa las primeras letras del alfabeto latino:
Cómo enseñar Fracciones en Primaria: Guía educativa para docentes
| Decimal | Binario | Hexadecimal |
|---|---|---|
| 0 | 0000 | 0 |
| 1 | 0001 | 1 |
| 2 | 0010 | 2 |
| 3 | 0011 | 3 |
| 4 | 0100 | 4 |
| 5 | 0101 | 5 |
| 6 | 0110 | 6 |
| 7 | 0111 | 7 |
| 8 | 1000 | 8 |
| 9 | 1001 | 9 |
| 10 | 1010 | A |
| 11 | 1011 | B |
| 12 | 1100 | C |
| 13 | 1101 | D |
| 14 | 1110 | E |
| 15 | 1111 | F |
Nota: Las letras pueden escribirse en mayúsculas o minúsculas (a-f), aunque en programación es habitual usar mayúsculas para claridad.
Notación para identificar hexadecimales
Para evitar confusiones, se usan varios formatos para indicar que un número está en hexadecimal:
- Prefijo
0x(lenguajes como C, C++, Python, JavaScript):0xFF= 255 decimal. - Prefijo
#(colores en HTML/CSS):#FF0000es rojo puro. - Sufijo
h(electrónica y ensamblador):FFho0FFh(a veces con cero inicial). - Subíndice 16 en textos matemáticos:
FF₁₆.
¿Por qué usar hexadecimal? Ventajas clave
Compacidad frente al binario
Un número binario de 8 bits (un byte) se escribe como 8 caracteres, por ejemplo 10101011. El mismo valor en hexadecimal solo ocupa dos dígitos: AB. Para 32 bits, pasarías de 32 unos y ceros a solo 8 símbolos hexadecimales. Esto reduce drásticamente errores de escritura y mejora la legibilidad.
Conversión directa binario ↔ hexadecimal
Cada dígito hexadecimal equivale exactamente a 4 bits (un nibble). Esto hace que convertir entre binario y hexadecimal sea trivial: solo agrupa los bits de 4 en 4 y sustituye cada grupo por su símbolo hexadecimal.
Ejemplo: 1101 1010 0111 1110 → D A 7 E → 0xDA7E
¿Qué es el Teorema de Wilson?
Sin tablas, sin multiplicaciones, sin divisiones. Esa relación 4:1 es la razón principal por la que los ingenieros aman el hexadecimal.
Aplicaciones reales donde el hexadecimal es imprescindible
- Direcciones de memoria: los depuradores y volcados de memoria (memory dumps) muestran direcciones en hex.
- Colores en web: RGB en hex
#RRGGBB, donde cada par es rojo, verde, azul (0-255). - MAC addresses:
00:1A:2B:3C:4D:5E. - Unicode: puntos de código como U+0041 (letra ‘A’).
- Depuración de datos binarios: al ver archivos con un editor hexadecimal.
- Electrónica digital: registros de configuración en microcontroladores.
Facilidad para representar bytes
Un byte (8 bits) siempre se puede escribir con dos dígitos hexadecimales, desde 00 hasta FF (0 a 255 decimal). Esto es mucho más intuitivo que tener que recordar que 11111111 binario es 255.
Conversiones paso a paso (guía práctica para estudiantes)
Conversión de hexadecimal a decimal
Para convertir un número hexadecimal a decimal, usamos la notación posicional: cada dígito se multiplica por 16 elevado a su posición (empezando por 0 desde la derecha).
Fórmula general:N = dₙ₋₁ × 16ⁿ⁻¹ + ... + d₁ × 16¹ + d₀ × 16⁰
Ejemplo 1: Convertir 2A3 hexadecimal a decimal.
¿Qué es el Teorema de Bolzano?
- Posición derecha (d₀): 3 × 16⁰ = 3 × 1 = 3
- Siguiente (d₁): A = 10 → 10 × 16¹ = 10 × 16 = 160
- Siguiente (d₂): 2 × 16² = 2 × 256 = 512
- Suma total: 512 + 160 + 3 = 675 decimal
Ejemplo 2: Convertir FF hex a decimal.
F=15 → 15×16¹ = 240; F=15 → 15×16⁰ = 15; Total = 255 decimal (máximo valor de un byte).
Conversión de decimal a hexadecimal
Se realiza mediante divisiones sucesivas entre 16, guardando los restos (que serán dígitos hex) y leyendo de abajo arriba.
Ejemplo: Convertir 475 decimal a hexadecimal.
- 475 ÷ 16 = 29, resto = 11 → en hex: B
- 29 ÷ 16 = 1, resto = 13 → en hex: D
- 1 ÷ 16 = 0, resto = 1 → en hex: 1
Leemos los restos del último al primero: 1 D B → 0x1DB
Comprobación rápida: 1×256 + 13×16 + 11 = 256 + 208 + 11 = 475 ✔️
Conversión hexadecimal ↔ binario (método directo)
Hex → Binario: cada dígito hex se reemplaza por su grupo de 4 bits.
Ejemplo: 3F → 3=0011, F=1111 → 00111111 binario (puedes omitir ceros iniciales: 111111).
Binario → Hex: agrupa de derecha a izquierda en grupos de 4 bits (rellena con ceros a la izquierda si falta).
Ejemplo: 110101 → grupos: 11 0101 → relleno: 0011 0101 → 3 y 5 → 0x35.
Tabla de equivalencias rápidas (útil para estudio)
| Decimal | Binario | Hexadecimal |
|---|---|---|
| 0-15 | 0000-1111 | 0-F |
| 16 | 00010000 | 10 |
| 32 | 00100000 | 20 |
| 64 | 01000000 | 40 |
| 128 | 10000000 | 80 |
| 255 | 11111111 | FF |
| 256 | 100000000 | 100 |
| 4096 | 1 seguido de 12 ceros | 1000 |
Errores comunes al aprender hexadecimal y cómo evitarlos
Confundir letras con valores
Muchos estudiantes olvidan que A=10, B=11, etc. Un truco: recuerda que A es la primera letra y equivale a 10 porque viene después del 9. Usa la frase: «A 10, B 11, C 12, D 13, E 14, F 15».
Olvidar que las posiciones empiezan en 0 desde la derecha
En la conversión a decimal, la potencia 16⁰ es el dígito más a la derecha. Un error frecuente es empezar por la izquierda con exponente 1.
No rellenar grupos de 4 bits en binario
Al pasar de binario a hex, si el grupo más a la izquierda tiene menos de 4 bits, hay que añadir ceros a la izquierda. Por ejemplo, 11101 → grupos: 1 1101 → rellenar: 0001 1101 = 0x1D.
Creer que ‘0x’ es parte del número
El 0x es solo una notación; el número sigue siendo el mismo. 0xFF y FF representan el mismo valor decimal 255.
Ejercicios resueltos paso a paso para practicar
Ejercicio 1: Convertir 1A4 hex a decimal
- 4 × 16⁰ = 4
- A (10) × 16¹ = 160
- 1 × 16² = 256
- Total = 420 decimal
Ejercicio 2: Convertir 500 decimal a hex
- 500 ÷ 16 = 31, resto = 4
- 31 ÷ 16 = 1, resto = 15 (F)
- 1 ÷ 16 = 0, resto = 1
- Resultado:
0x1F4
Ejercicio 3: Pasar 10110111 binario a hex
- Grupos de 4:
1011 0111 - 1011 = B, 0111 = 7
- Resultado:
0xB7
Ejercicio 4: ¿Qué color es #00FF00 en RGB?
- 00 = 0 rojo, FF = 255 verde, 00 = 0 azul → verde puro.
Ejercicio 5: Sumar 0xA + 0x5 en hex
- A=10, 5=5, suma=15 → en hex
0xF.
Hexadecimal en programación (casos prácticos)
En Python
python
# Declarar hexadecimal
valor = 0x2F # 47 decimal
# Convertir a decimal
print(int('2F', 16)) # 47
# Convertir decimal a hex
print(hex(47)) # '0x2f'En JavaScript
javascript
let hex = 0xFF; // 255
let str = "#FF5733"; // color
let dec = parseInt("FF", 16); // 255En Arduino/C
c
byte direccion = 0x1A; // 26 decimal Serial.print(direccion, HEX); // imprime "1A"
En HTML/CSS
css
.rojo {
color: #FF0000;
background-color: #00FF00AA; /* RGBA con canal alfa */
}Ampliación: hexadecimal más allá del byte
Aunque lo más común es usar hex para bytes (2 dígitos), se puede usar con cualquier longitud:
- Nibble (4 bits): 1 dígito hex.
- Byte (8 bits): 2 dígitos hex.
- Word (16 bits): 4 dígitos hex (ej.
0xFFFF= 65535). - Dword (32 bits): 8 dígitos hex.
- Qword (64 bits): 16 dígitos hex.
También existe el sistema hexadecimal con parte fraccionaria (por ejemplo, F.8₁₆ = 15 + 8/16 = 15.5 decimal), aunque su uso es menos frecuente.
Resultados de aprendizaje
- Definir correctamente qué es un sistema de numeración hexadecimal (base 16) y enumerar sus 16 símbolos (0-9, A-F).
- Convertir cualquier número hexadecimal a decimal usando la notación posicional con potencias de 16.
- Convertir cualquier número decimal a hexadecimal mediante el método de divisiones sucesivas entre 16.
- Realizar conversiones directas entre binario y hexadecimal agrupando bits de 4 en 4 sin necesidad de cálculos intermedios.
- Identificar aplicaciones reales del hexadecimal en informática: colores web, direcciones MAC, direcciones de memoria, depuración y electrónica.
- Diferenciar las notaciones comunes como
0x,#y sufijohpara representar hexadecimales en distintos lenguajes y contextos. - Evitar errores típicos como confundir las letras A-F con sus valores decimales o no rellenar grupos de bits correctamente.
- Escribir y leer código básico en lenguajes como Python, JavaScript o Arduino que utilice constantes hexadecimales.
- Interpretar valores RGB representados en formato hexadecimal (
#RRGGBB) y calcular su equivalente decimal. - Aplicar la conversión hexadecimal a problemas prácticos de tamaño de bytes, rangos de memoria y representación compacta de datos.
Explora más sobre este tema
Selecciona un tema y sigue aprendiendo...
