¿Qué es un hexadecimal? – Definición y conversión

Rodrigo Ricardo Publicado el 8 octubre, 2021 7 minutos y 19 segundos de lectura

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:

DecimalBinarioHexadecimal
000000
100011
200102
300113
401004
501015
601106
701117
810008
910019
101010A
111011B
121100C
131101D
141110E
151111F

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): #FF0000 es rojo puro.
  • Sufijo h (electrónica y ensamblador): FFh o 0FFh (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

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 addresses00: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.

  • 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.

  1. 475 ÷ 16 = 29, resto = 11 → en hex: B
  2. 29 ÷ 16 = 1, resto = 13 → en hex: D
  3. 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)

DecimalBinarioHexadecimal
0-150000-11110-F
160001000010
320010000020
640100000040
1281000000080
25511111111FF
256100000000100
40961 seguido de 12 ceros1000

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);  // 255

En 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

  1. Definir correctamente qué es un sistema de numeración hexadecimal (base 16) y enumerar sus 16 símbolos (0-9, A-F).
  2. Convertir cualquier número hexadecimal a decimal usando la notación posicional con potencias de 16.
  3. Convertir cualquier número decimal a hexadecimal mediante el método de divisiones sucesivas entre 16.
  4. Realizar conversiones directas entre binario y hexadecimal agrupando bits de 4 en 4 sin necesidad de cálculos intermedios.
  5. Identificar aplicaciones reales del hexadecimal en informática: colores web, direcciones MAC, direcciones de memoria, depuración y electrónica.
  6. Diferenciar las notaciones comunes como 0x# y sufijo h para representar hexadecimales en distintos lenguajes y contextos.
  7. Evitar errores típicos como confundir las letras A-F con sus valores decimales o no rellenar grupos de bits correctamente.
  8. Escribir y leer código básico en lenguajes como Python, JavaScript o Arduino que utilice constantes hexadecimales.
  9. Interpretar valores RGB representados en formato hexadecimal (#RRGGBB) y calcular su equivalente decimal.
  10. 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...

Rodrigo Ricardo
Rodrigo Ricardo Editor y fundador