jueves, 10 de enero de 2008

SISTEMA HEXADECIMAL

El sistema hexadecimal, a veces abreviado como hex, es el sistema de numeración posicional de base 16 —empleando por tanto 16 símbolos—. Su uso actual está muy vinculado a la informática y ciencias de la computación, pues los computadores suelen utilizar el byte u octeto como unidad básica de memoria; y, debido a que un byte representa 28 valores posibles, y esto poder representarse como 2^8 = 2^4 \cdot 2^4 = 16 \cdot 16 = 1 \cdot 16^2 + 0 \cdot 16^1 + 0 \cdot 16^0, que, según el teorema general de la numeración posicional, equivale al número en base 16 10016, dos dígitos hexadecimales corresponden exactamente —permiten representar la misma línea de enteros— a un byte.

En principio dado que el sistema usual de numeración es de base decimal y, por ello, sólo se dispone de diez dígitos, se adoptó la convención de usar las seis primeras letras del alfabeto latino para suplir los dígitos que nos faltan. El conjunto de símbolos sería, por tanto, el siguiente:

 S = \{0, 1, 2, 3, \cdots, 9, \mathrm{A}, \mathrm{B}, \mathrm{C}, \cdots, \mathrm{F}\}

Se debe notar que A = 10, B = 11, C = 12, D = 13, E = 14 y F = 15. En ocasiones se emplean letras minúsculas en lugar de mayúsculas. Como en cualquier sistema de numeración posicional, el valor numérico de cada dígito es alterado dependiendo de su posición en la cadena de dígitos, quedando multiplicado por una cierta potencia de la base del sistema, que en este caso es 16. Por ejemplo: 3E0,A16 = 3×162 + E×161 + 0×160 + A×16-1 = 3×256 + 14×16 + 0×1 + 10×0,0625 = 992,625.

El sistema hexadecimal actual fue introducido en el ámbito de la computación por primera vez por IBM en 1963. Una representación anterior, con 0–9 y u–z, fue usada en 1956 por la computadora Bendix G-15.

Tabla de multiplicar hexadecimal.
Tabla de multiplicar hexadecimal.

El sistema hexadecimal es otro sistema de numeración altamente ligado a los informáticos y a los ordenadores. Esta vez, no por ser el método de numeración de las máquinas, sino de ser una forma más sencilla de expresar ese lenguaje del ordenador. Muchas veces hemos observado como las direcciones de memoria (por ejemplo, cuando Windows falla y emite mensajes de error) aparecen en este código. Por sí, resultan unos códigos ilegibles para nosotros. Pero, imagina si ese código tan entendible estuviera en binario.

El sistema hexadecimal es un sistema en base 16 y está compuesto por los dígitos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. La forma de contar sería:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F (del 0 al 15)

10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F (del 15 al 31)

20, 21, 22....


La conversión a decimal, es análoga al paso de binario a decimal, utilizando el teorema fundamental de numeración. Veamos un ejemplo:

7A5=7x162 + 10x161 + 5x160 = 1957


Debemos recordar que:

A=10 B=11 C=12 D=13 E=14 F=15


El paso contrario, de decimal a hexadecimal, también es análogo a la conversión binaria, pero teniendo en cuenta que la base es 16 y, por tanto, deberemos dividir por este número.

1957 / 16 = 122 Resto: 5
122 / 16 = 7 Resto: 10 (A)
7 / 16 = 0 Resto: 7

1957 = 7A5


Sin embargo, en oposición a estas conversiones, el paso de binario a hexadecimal y de hexadecimal a binario es directo. En el primer caso, agruparemos los bits de 4 en 4 desde la derecha y pasaremos cada grupo a su equivalente a hexadecimal. En el segundo caso, pasaremos cada dígito hexadecimal a su equivalente en binario.

De Binario a Hexadecimal:

11110100101 -- 111 1010 0101 -- 7 A 5 -- 7A5


De Hexadecimal a Binario:

7A5 -- 7 A 5 -- 0111 1010 0101 -- 11110100101


Como se puede observar, el paso es inmediato, lo que supone que en muchas ocasiones y, para mayor claridad, (y brevedad, fíjate en que en hexadecimal necesitamos menos dígitos) utilicemos este sistema de numeración.

No hay comentarios: