Numération hexadécimale

Les ingénieurs qui conçoivent les ordinateurs ou qui développent du logiciel de bas niveau doivent fréquemment manipuler des données représentées en binaire. Or, les ordinateurs modernes travaillent sur des valeurs de 32 ou 64 bits qui peuvent être fastidieuses à lire ou à écrire sans erreur. Nous serions plus à l’aise en décimal, mais la conversion entre binaire et décimal n’est pas immédiate.

Un compromis couramment utilisé par les ingénieurs est de travailler en base 16, également nommée numération hexadécimale. En effet, un nombre représenté en base 16 nécessite quatre fois moins de chiffres qu’en binaire. La conversion entre binaire et hexadécimal est triviale.

La numération hexadécimale est un moyen, pour des être humains, de représenter des données sous une forme proche du binaire, mais plus facile à manipuler. Gardez à l’esprit que les ordinateurs utilisent toujours le binaire.

Compter en base 16

La numération hexadécimale utilise seize symboles : les chiffres de 0 à 9 et les lettres de A à F. Un chiffre hexadécimal seul représente un nombre compris entre 0 et 15 selon le tableau de conversion suivant :

Hexadécimal Décimal Hexadécimal Décimal
0 0 8 8
1 1 9 9
2 2 A 10
3 3 B 11
4 4 C 12
5 5 D 13
6 6 E 14
7 7 F 15

Un nombre supérieur ou égal à seize s’écrit comme une séquence de chiffres, chacun associé à un poids différent en fonction de sa position. Le chiffre le plus à droite a toujours un poids égal à 1. En continuant de droite à gauche, le poids d’un chiffre est égal à seize fois le poids du chiffre précédent. Par exemple, le nombre 5C3Ehex5C3E_{hex} se décompose de la manière suivante :

4096 256 16 1
5 C 3 E

La valeur de ce nombre s’obtient en multipliant la valeur de chaque chiffre par le poids qui lui est associé, et en additionnant les produits :

5×4096+12×256+3×16+14×1=236145 \times 4096 + 12 \times 256 + 3 \times 16 + 14 \times 1 = 23614

Ou encore :

5×163+12×162+3×160+14×160=236145 \times 16^3 + 12 \times 16^2 + 3 \times 16^0 + 14 \times 16^0 = 23614

Dans le cas général, un nombre entier naturel KK s’écrit en hexadécimal comme une séquence de PP chiffres hexadécimaux hP1hP2h2h1h0h_{P-1} h_{P-2} \ldots h_{2} h_{1} h_{0} tels que :

K=i=0P1hi16iK = \sum_{i=0}^{P-1}h_i \cdot 16^i

Du binaire à l’hexadécimal

La conversion du binaire à l’hexadécimal est facilitée par le fait que seize est une puissance de deux (16=2416 = 2^4). Par conséquent, les seize chiffres hexadécimaux utilisent exactement les seize combinaisons possibles de quatre bits :

Hexadécimal Binaire Hexadécimal Binaire
0 0000 8 1000
1 0001 9 1001
2 0010 A 1010
3 0011 B 1011
4 0100 C 1100
5 0101 D 1101
6 0110 E 1110
7 0111 F 1111

Pour les nombres supérieurs à quinze, la conversion entre binaire et hexadécimal consiste simplement à associer chaque chiffre hexadécimal à un groupe de quatre bits consécutifs. Par exemple, le nombre 5C3Ehex5C3E_{hex} se décompose de la manière suivante :

5C3E
0101110000111110

Nous pouvons donc écrire :

5C3Ehex=0101110000111110bin5C3E_{hex} = 0101110000111110_{bin}