¿Qué son los números hexadecimales y para qué se utilizan?

 

l alfabeto:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F

Las letras representan los siguientes valores decimales:

HexadecimalDecimal
A10
B11
C12
D13
E14
F15

Después de la letra F, el siguiente número hexadecimal es 10. Sin embargo, ese 10 no representa diez en decimal, sino dieciséis.

Comparación entre decimal, binario y hexadecimal

Las computadoras trabajan internamente con el sistema binario, formado únicamente por ceros y unos. El problema es que los números binarios pueden volverse demasiado largos y difíciles de leer.

Por ejemplo:

DecimalBinarioHexadecimal
000000
100011
910019
101010A
151111F
160001 000010
2551111 1111FF

El número decimal 255 necesita ocho dígitos en binario, pero solamente dos símbolos en hexadecimal: FF.

Por esta razón, el sistema hexadecimal funciona como una representación más compacta y legible de los datos binarios.

¿Cómo funciona el valor posicional?

Al igual que sucede con los números decimales, el valor de cada símbolo hexadecimal depende de la posición que ocupa.

En el sistema decimal, las posiciones representan potencias de 10:

347 = (3 × 10²) + (4 × 10¹) + (7 × 10⁰)

En hexadecimal, cada posición representa una potencia de 16.

Tomemos como ejemplo el número hexadecimal 2F:

2F = (2 × 16¹) + (F × 16⁰)

Como F equivale a 15:

2F = (2 × 16) + (15 × 1)

2F = 32 + 15

2F = 47 en decimal

Por lo tanto:

0x2F = 47

¿Por qué aparece el prefijo 0x?

En muchos lenguajes de programación, los números hexadecimales se escriben utilizando el prefijo 0x.

Por ejemplo:

0x10
0xFF
0x2A
0x7B3

El prefijo 0x indica que el valor debe interpretarse como hexadecimal y no como decimal.

Así, 0x10 representa el número decimal 16, mientras que 10 representa el número decimal 10.

En otros entornos también pueden encontrarse diferentes notaciones:

  • 0xFF: utilizada en C, C++, Java, JavaScript y Python.
  • FFh: frecuente en lenguaje ensamblador.
  • #FF0000: utilizada para representar colores en HTML y CSS.

Cómo convertir hexadecimal a decimal

Para convertir un número hexadecimal a decimal, multiplicamos cada símbolo por la potencia de 16 correspondiente.

Supongamos que queremos convertir 3A:

3A = (3 × 16¹) + (A × 16⁰)

Como A equivale a 10:

3A = (3 × 16) + (10 × 1)

3A = 48 + 10

3A = 58

Por lo tanto:

0x3A = 58 en decimal

Veamos otro ejemplo con 1F4:

1F4 = (1 × 16²) + (F × 16¹) + (4 × 16⁰)

1F4 = (1 × 256) + (15 × 16) + (4 × 1)

1F4 = 256 + 240 + 4

1F4 = 500

Cómo convertir decimal a hexadecimal

Para convertir un número decimal a hexadecimal, podemos dividir sucesivamente por 16 y conservar los restos.

Convertiremos el número decimal 255:

  1. Dividimos 255 entre 16.
  2. El resultado es 15 y el resto también es 15.
  3. En hexadecimal, 15 se representa con la letra F.
  4. Leemos los valores desde el último cociente hasta el primer resto.

El resultado es:

255 = FF en hexadecimal

Otro ejemplo con el número decimal 26:

26 ÷ 16 = 1, con resto 10

Como 10 se representa con la letra A, el resultado es:

26 = 1A en hexadecimal

Relación entre hexadecimal y binario

Una de las grandes ventajas del sistema hexadecimal es que cada dígito representa exactamente cuatro bits.

HexadecimalBinario
00000
10001
20010
30011
40100
50101
60110
70111
81000
91001
A1010
B1011
C1100
D1101
E1110
F1111

Para convertir 3F a binario, reemplazamos cada símbolo por sus cuatro bits:

3 = 0011

F = 1111

Por lo tanto:

3F = 00111111

Esta equivalencia facilita enormemente la lectura de direcciones, instrucciones y bloques de memoria.

¿Dónde se utilizan los números hexadecimales?

1. Colores en HTML y CSS

Los colores de una página web pueden representarse mediante seis dígitos hexadecimales.

Por ejemplo:

color: #FF0000;

Los pares representan la intensidad de rojo, verde y azul:

  • FF: rojo al máximo.
  • 00: ausencia de verde.
  • 00: ausencia de azul.

Por eso, #FF0000 representa el color rojo.

Otros ejemplos:

#00FF00 = verde
#0000FF = azul
#FFFFFF = blanco
#000000 = negro

Cada componente puede tener un valor entre 00 y FF, equivalente al rango decimal de 0 a 255.

2. Direcciones de memoria

Las direcciones de memoria suelen mostrarse en hexadecimal porque resulta mucho más cómodo que visualizar largas cadenas binarias.

Por ejemplo:

0x7FFD2A10

Este tipo de dirección puede encontrarse al trabajar con depuradores, punteros, análisis de memoria o ingeniería inversa.

3. Direcciones MAC

Una dirección MAC identifica una interfaz de red y normalmente se presenta mediante pares hexadecimales:

00:1A:2B:3C:4D:5E

Cada par representa un byte, es decir, ocho bits.

4. Lenguaje ensamblador

En Assembly, el sistema hexadecimal se utiliza constantemente para representar instrucciones, direcciones, registros y valores almacenados en memoria.

Ejemplo:

MOV AL, 0FFh

La instrucción coloca el valor hexadecimal FF en el registro AL.

5. Ciberseguridad y análisis forense

Los profesionales de ciberseguridad utilizan editores hexadecimales para examinar directamente los bytes de un archivo.

Una vista hexadecimal puede revelar:

  • Cabeceras de archivos.
  • Firmas digitales.
  • Código ejecutable.
  • Metadatos.
  • Datos ocultos.
  • Contenido corrupto.
  • Patrones relacionados con malware.

Por ejemplo, muchos archivos pueden identificarse por sus primeros bytes, conocidos como magic bytes o números mágicos.

Un archivo JPEG suele comenzar con:

FF D8 FF

Un ejecutable de Windows normalmente comienza con:

4D 5A

Estos últimos valores corresponden a las letras MZ en código ASCII.

6. Programación

Los programadores pueden utilizar números hexadecimales para trabajar con máscaras de bits, permisos, protocolos, gráficos y operaciones a bajo nivel.

Ejemplo en Python:

numero = 0x2A

print(numero)

El resultado será:

42

Python interpreta automáticamente 0x2A como un valor hexadecimal, pero lo muestra en decimal.

Para convertir un número decimal a hexadecimal podemos usar:

numero = 255

print(hex(numero))

Resultado:

0xff

También podemos convertir una cadena hexadecimal a decimal:

numero = int("FF", 16)

print(numero)

Resultado:

255

¿Cuántos valores puede representar un byte?

Un byte está formado por ocho bits. Como cada dígito hexadecimal representa cuatro bits, un byte puede escribirse utilizando exactamente dos dígitos hexadecimales.

Su valor mínimo es:

00000000 = 00

Y su valor máximo es:

11111111 = FF

Por lo tanto, un byte puede representar 256 valores diferentes, desde 0 hasta 255.

Esta relación explica por qué encontramos con tanta frecuencia valores como FF, 00, 7F o A4 cuando trabajamos con archivos, redes, memoria y programación.

¿Es necesario memorizar todo?

No es necesario memorizar grandes tablas para comenzar. Lo más importante es recordar lo siguiente:

  • El sistema hexadecimal trabaja en base 16.
  • Utiliza los números del 0 al 9 y las letras de la A a la F.
  • La letra A representa 10 y la F representa 15.
  • Cada dígito hexadecimal equivale a cuatro bits.
  • Dos dígitos hexadecimales representan un byte.
  • FF equivale a 255 en decimal.
  • El prefijo 0x identifica habitualmente un valor hexadecimal.

Con la práctica, las conversiones más comunes se vuelven naturales.

Conclusión

El sistema hexadecimal es una herramienta esencial en informática. Aunque al principio pueda parecer extraño, su función principal es simplificar la representación de la información binaria.

Gracias a este sistema podemos leer colores, direcciones de memoria, bytes, códigos de máquina, direcciones MAC y contenido de archivos de una forma mucho más compacta.

Comprender los números hexadecimales es especialmente importante para quienes desean estudiar programación, redes, lenguaje ensamblador, ciberseguridad, análisis forense o ingeniería inversa. No se trata simplemente de aprender otra forma de contar: se trata de acercarnos al modo en que las computadoras representan y procesan la información.

Preguntas frecuentes

¿Hexadecimal y binario son lo mismo?

No. El sistema binario utiliza base 2 y el hexadecimal utiliza base 16. Sin embargo, hexadecimal permite representar valores binarios de manera más breve.

¿Por qué se utilizan letras?

Porque después de los diez dígitos decimales todavía se necesitan seis símbolos adicionales. Las letras A, B, C, D, E y F representan los valores del 10 al 15.

¿Cuánto vale FF en decimal?

FF equivale a 255 en decimal.

¿Cuánto vale 10 en hexadecimal?

El número hexadecimal 10 equivale a 16 en decimal.

¿Dónde puedo practicar?

Puedes utilizar la calculadora de Windows en modo Programador. Allí podrás escribir valores en decimal, hexadecimal, octal o binario y observar su conversión inmediatamente.


Descripción para buscadores: Aprende qué son los números hexadecimales, cómo convertirlos a decimal y binario, y por qué se utilizan en programación, informática, redes y ciberseguridad.

Comentarios

Entradas populares de este blog

Ya a la venta: "Secretos de los patrones de diseño en Java" de Alejandro G Vera

THC Hydra: auditoría de contraseñas y servicios de autenticación en Kali Linux

Cain & Abel: historia y uso básico