El sistema hexadecimal (a veces abreviado como Hex, no confundir con sistema sexagesimal) es el sistema de numeración posicional que tiene como base el 16. 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 valores posibles, y esto puede representarse como , que equivale al número en base 16 , dos dígitos hexadecimales corresponden exactamente 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:
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: 3E0A16 = 3×163 + E×162 + 0×161 + A×160 = 3×4096 + 14×256 + 0×16 + 10×1 = 15882.
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 conversión entre decimal, binario, octal y hexadecimal[editar]
|
|
|
|
|
|
|
|
|
|
|
|
|
0hex |
= |
0dec |
= |
0oct |
|
0 |
0 |
0 |
0 |
|
|
1hex |
= |
1dec |
= |
1oct |
|
0 |
0 |
0 |
1 |
|
|
2hex |
= |
2dec |
= |
2oct |
|
0 |
0 |
1 |
0 |
|
|
3hex |
= |
3dec |
= |
3oct |
|
0 |
0 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4hex |
= |
4dec |
= |
4oct |
|
0 |
1 |
0 |
0 |
|
|
5hex |
= |
5dec |
= |
5oct |
|
0 |
1 |
0 |
1 |
|
|
6hex |
= |
6dec |
= |
6oct |
|
0 |
1 |
1 |
0 |
|
|
7hex |
= |
7dec |
= |
7oct |
|
0 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8hex |
= |
8dec |
= |
10oct |
|
1 |
0 |
0 |
0 |
|
|
9hex |
= |
9dec |
= |
11oct |
|
1 |
0 |
0 |
1 |
|
|
Ahex |
= |
10dec |
= |
12oct |
|
1 |
0 |
1 |
0 |
|
|
Bhex |
= |
11dec |
= |
13oct |
|
1 |
0 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Chex |
= |
12dec |
= |
14oct |
|
1 |
1 |
0 |
0 |
|
|
Dhex |
= |
13dec |
= |
15oct |
|
1 |
1 |
0 |
1 |
|
|
Ehex |
= |
14dec |
= |
16oct |
|
1 |
1 |
1 |
0 |
|
|
Fhex |
= |
15dec |
= |
17oct |
|
1 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Como el único factor primo de 16 es 2, todas las fracciones que no tengan una potencia de 2 en el denominador, tendrán un desarrollo hexadecimal periódico.
Fracción | Hexadecimal | Resultado en hexadecimal |
1/2 |
1/2 |
0,8 |
1/3 |
1/3 |
0,5 periodo |
1/4 |
1/4 |
0,4 |
1/6 |
1/6 |
0,2A periodo |
1/7 |
1/7 |
0,249 periodo |
1/8 |
1/8 |
0,2 |
1/9 |
1/9 |
0,1C7 periodo |
1/10 |
1/A |
0,19 periodo |
1/11 |
1/B |
0,1745D periodo |
1/12 |
1/C |
0,15 periodo |
1/13 |
1/D |
0,13B periodo |
1/14 |
1/E |
0,1249 periodo |
1/15 |
1/F |
0,1 periodo |
1/16 |
1/10 |
0,1 |
Existe un sistema para convertir números fraccionarios a hexadecimal de una forma más mecánica. Se trata de convertir la parte entera con el procedimiento habitual y convertir la parte decimal aplicando sucesivas multiplicaciones por 16 hasta convertir el resultado en un número entero.
Por ejemplo: 0,06640625 en base decimal.
Multiplicado por 16: 1,0625, el primer decimal será 1. Volvemos a multiplicar por 16 la parte decimal del anterior resultado: 1. Por lo tanto el siguiente decimal será un 1.Resultado: 0,11 en base hexadecimal. Como el último resultado se trata de un entero, hemos acabado la conversión.
Hay ocasiones en las que no llegamos nunca a obtener un número entero, en ese caso tendremos un desarrollo hexadecimal periódico.