Sistema de numeración hexadecimal
Una dirección de memoria viene dada por un número en sistema hexadecimal. Veamos como funciona:
Sistema Binario:
El sistema de numeración que nosotros conocemos es el decimal (sistema de numeración en base 10) . Se llama decimal porque cualquier número lo podemos expresar utilizando únicamente los 10 dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
El sistema binario (sistema de numeración en base 2) utiliza sólo dos dígitos: 0, 1
El problema es cómo pasar del sistema binario al decimal, para poder entendernos:
Sea 1011 un número binario, para hallar su equivalente en decimal hemos de hacer lo siguiente: 1011 = 1×20 + 1×21 + 0x22 + 1×23 = 1 + 2 + 8 = 11
El número 1011 en base 2, es el número 11 en base 10.
1 Bit es un 1 o un 0, que representa en informática, un circuito electrico por el que pasa corriente (1) o no (0).
1 Byte = 8 Bits por esta razón a 1 byte se le llama también octeto (8).
1 Byte representa un carácter, se alfabético, numérico o especial. Por ejemplo:
El Byte: 01000100 = 4 + 64 = 68 (en decimal) corresponde al carácter D (código ASCII= 68)
El Byte: 00101101 = 45 (en decimal) corresponde al carácter – (signo menos) y se corresponde con el código ASCII= 45
El byte: 00111001 = 57 corresponde al carácter 9 (dígito 9) y se corresponde con el código ASCII = 57
Sistema hexadecimal:
El sistema hexadecimal utiliza 16 dígitos, que son: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
El número 4A0 en sistema hexadecimal será 1184 en sistema decimal, porque: 4A0 = 0x160 + Ax161 + 4×162 = 0x1 + 10×16 + 4×256 = 1184
La utilidad del sistema hexadecimal está en que utilizamos menos dígitos para expresar un número mayor: El número 1184 en decimal ocupa 4 dígitos, encambio el mismo número en hexadecimal (4A0) ocupa 3.
Volviendo a nuestro lenguaje de programación: en una variable hemos de distinguir entre su valor (contenido de la celdilla o celdillas de memoria) y su dirección de memoria (lugar de la celdilla o celdillas número en hexadecimal).
Fuente: Programación en C/C++ (Manual FV) de Fermí Vilà