Hexadecimal
El sistema hexadecimal es una notación de base 16 que usa los símbolos 0–9 y A–F para representar números y bytes.
Definición
El sistema hexadecimal, o hex, es un sistema de numeración posicional de base 16. Usa del 0 al 9 y de la A a la F; A equivale a 10 decimal y F a 15.
Es práctico para mostrar datos binarios porque un dígito hexadecimal corresponde exactamente a 4 bits y dos dígitos representan un byte entre 00 y FF.
Cómo funciona
Como en decimal, cada posición tiene un peso, pero se usan potencias de 16. Así, 2F significa 2 × 16 + 15, es decir, 47 decimal. Las letras mayúsculas y minúsculas suelen tener el mismo valor.
Los programas suelen anteponer 0x a un número hexadecimal, y los volcados de bytes pueden incluir espacios o dos puntos. Son convenciones de formato, no dígitos hexadecimales.
Ejemplo práctico
El texto UTF-8 Hi consta de los bytes hexadecimales 48 69. Al convertir las parejas en bytes e interpretarlas como UTF-8 se recupera Hi. Los mismos bytes son SGk= en Base64.
Hex usa dos caracteres de texto por byte, de modo que resulta fácil de inspeccionar pero ocupa aproximadamente el doble que los datos sin codificar.
Interpretación y errores frecuentes
Una cadena hex no indica si sus bytes son texto, un número, un archivo, un hash o texto cifrado. Para obtener texto también hace falta la codificación de caracteres correcta. Al decodificar por bytes, una cantidad impar de dígitos queda incompleta salvo que una convención añada un cero inicial.
La notación hexadecimal es reversible y no ofrece confidencialidad: no es cifrado.
No. Solo cambia la representación escrita de números o bytes. Cualquiera puede convertir un valor hex válido sin clave.
Un byte suele escribirse con dos dígitos hex. En una cadena impar queda medio byte sin pareja, aunque un número hexadecimal ordinario sí puede tener cualquier cantidad de dígitos.
No. A–F y a–f suelen valer lo mismo, aunque un formato de salida concreto puede imponer un estilo.