Disponible la nueva versión "donationware" 7.3 de OrganiZATOR
Descubre un nuevo concepto en el manejo de la información.
La mejor ayuda para sobrevivir en la moderna jungla de datos la tienes aquí.

Curso C++

[Home]  [Inicio]  [Índice]


Sistema Hexadecimal

§1  Sinopsis

Recordemos que el sistema de numeración (codificación) decimal recibe este nombre porque su base es diez; existen 10 dígitos (del 0 al 9) para representar las cantidades. Hemos visto ( E0.1) que en este sistema, la representación de una cantidad cualquiera, por ejemplo 1798, se lee:

1 x 103 + 7 x 102 + 9 x 101 + 8 x 100    ==    1 x 1000 + 7 x 100 + 9 x 10 + 8 x 1

En el sistema decimal, el valor de las cifras viene complementado por su posición en el conjunto (es posicional), de forma que el valor total de una expresión viene representado por el producto de su valor-base (0 a 9) multiplicado por la potencia de 10 que corresponda según su posición. Al final se suman los resultados parciales.


Por su parte, el sistema hexadecimal, como su propio nombre indica, es un método de codificación análogo al anterior, con la diferencia de que su base es 16. Como el sistema de representación arábigo (que utilizamos) solo tiene 10 dígitos (0 al 9), para su representación se han utilizado además las seis primeras letras del alfabeto:  A,B,C,D,E,F (en algunos sistemas pueden utilizarse tanto mayúsculas como minúsculas). Resulta así que los dígitos de este sistema van del 0 al F (sus valores decimales son respectivamente 0 y 15).

La representación de cualquier cantidad sigue las mismas reglas que la codificación decimal, con la diferencia de que la base es ahora 16. Por ejemplo, el número (decimal) 1976 se expresa como 7B8 en hexadecimal, y se lee:

 7 x 162 + B x 161 + 8 x 160    ==    7 x 256 + B x 16 + 8 x 1

Si sacamos la cuenta, sabiendo que B equivale a 11 (decimal) vemos que efectivamente 7B8 equivale a 1976.


Para distinguir en el texto las cantidades escritas en decimal de las hexadecimales, es costumbre añadir a estas últimas el sufijo "h".  Por ejemplo:  7B8h indica que esta cantidad está representada en hexadecimal. Observe que según esta regla, 11 y 11h no representan las mismas cantidades.

Nota:  La regla anterior se refiere al texto "human readable" (para los humanos). Cuando las cantidades hexadecimales se incluyen en el texto fuente de programas, la forma de representación depende del compilador. Por ejemplo, en C++ se escriben precedidas de 0X o 0x ( E2.2.4b)

§2  Conversión de formato binario a hexadecimal

Es relativamente fácil convertir una cantidad representada en binario a su correspondiente representación hexadecimal. La regla es dividir la cantidad binaria en grupos de 4 dígitos empezando por la derecha (en caso necesario, añadir ceros a la izquierda para completar un grupo). A continuación traducir cada cuarteto (de 0000 a 1111) en el correspondiente dígito hexadecimal.

Ejemplo:   0101000111100011 es 51E3h.

Ver ejemplo de programa conversor ( 9.5)