Système hexadécimal

Un article de Wikipédia, l'encyclopédie libre.

Le système hexadécimal est un système de numération positionnel en base 16, utilisant les chiffres arabes pour les dix premiers chiffres et les lettres A à F pour les six suivants. Particulièrement utile en informatique, cette écriture des entiers naturels permet un compromis entre l'utilisation d'un code binaire et une facilité de lecture des résultats. Chaque chiffre correspond exactement à quatre bits binaires.

Utilisé la première fois en 1956 par l'ordinateur Bendix G-15, le système hexadécimal fut commercialisé par l'entreprise américaine IBM à partir de 1963. Il s'agit du standard actuellement reconnu.

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


Sommaire

[modifier] Étymologie

L'adjectif hexadécimal provient de la juxtaposition de hexa et de décimal. Le préfixe hexa provient du grec έξ (hex) qui signifie six alors que décimal est un terme de provenance latine. Le choix a été fait dans l'appellation d'écrire 6+10 au lieu de 16, pour insister sur l'ajout de six chiffres supplémentaires par rapport au système décimal, système largement diffusé aux États-Unis.

Pour obtenir une cohérence dans l'étymologie tout en conservant l'écriture 6+10, la documentation Bendix utilisait l'appellation sexadécimal ; mais l'appellation fut rejetée, jugée trop risquée. Selon Schwartzman[1], les pirates informatiques auraient été tentés d'utiliser l'abréviation sex. Selon David Knuth[2] la bonne appellation aurait dû être senidenary ou en français système sénidénaire, dont la construction étymologique est la même que système binaire.

[modifier] Écriture des entiers

Le système hexadécimal nécessite l'introduction de 16 chiffres, représentant les 16 premiers entiers positifs :

0 ; 1 ; 2; 3 ; 4 ; 5; 6 ; 7 ; 8 ; 9 ; A; B ; C ; D ; E ; F.

Un entier est écrit comme la concaténation de ces chiffres, et sa lecture s'effectue de droite à gauche. Sa valeur vaut la somme des chiffres affectés de poids correspondant aux puissances successives du nombre 16. Par exemple, 4D5 vaut 5+13*16+4*16*16.

L'addition s'effectue à partir de la technique de l'addition et de la table d'addition suivante :

 +   0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F 
 0    0    1   2   3   4   5   6   7   8   9   A   B   C   D   E   F 
 1    1   2   3   4   5   6   7   8   9   A   B   C   D   E   F    10 
 2   2   3   4   5   6   7   8   9   A   B   C   D   E   F    10    11 
 3   3   4   5   6   7   8   9   A   B   C   D   E   F    10    11    12 
 4   4   5   6   7   8   9   A   B   C   D   E   F    10    11    12    13  
 5   5   6   7   8   9   A   B   C   D   E   F    10    11    12    13     14 
 6   6   7   8   9   A   B   C   D   E   F    10    11    12    13     14   15 
 7   7   8   9   A   B   C   D   E   F    10    11    12    13     14   15    16 
 8   8   9   A   B   C   D   E   F    10    11    12    13     14   15    16    17  
 9   9   A   B   C   D   E   F    10    11    12    13     14   15    16    17     18  
 A   A   B   C   D   E   F    10    11    12    13     14   15    16    17     18     19 
 B   B   C   D   E   F    10    11    12    13     14   15    16    17     18     19    1A 
 C   C   D   E   F    10    11    12    13     14   15    16    17     18     19    1A    1B  
 D   D   E   F    10    11    12    13     14   15    16    17     18     19    1A    1B     1C  
 E   E   F    10    11    12    13     14   15    16    17     18     19    1A    1B     1C     1D 
 F   F    10    11    12    13     14   15    16    17     18     19    1A    1B     1C     1D    1E  

La multiplication s'effectue à partir de la technique de la multiplication par glissement par jalousies et en utilisant la table de multiplication suivante :

 x   0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F 
 0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0 
 1    0    1    2    3    4    5    6    7    8    9    A    B    C    D    E    F 
 2    0    2    4    6    8    A    C    E    10    12    14    16    18    1A    1C    1E 
 3    0    3    6    9    C    F    12    15    18    1B    1E    21    24    27    2A    2D 
 4    0    4    8    C    10    14    18    1C    20    24    28    2C    30    34    38    3C 
 5    0    5    A    F    14    19    1E    23    28    2D    32    37    3C    41    46    4B 
 6    0    6    C    12    18    1E    24    2A    30    36    3C    42    48    4E    54    5A 
 7    0    7    E    15    1C    23    2A    31    38    3F    46    4D    54    5B    62    69 
 8    0    8    10    18    20    28    30    38    40    48    50    58    60    68    70    78 
 9    0    9    12    1B    24    2D    36    3F    48    51    5A    63    6C    75    7E    87 
 A    0    A    14    1E    28    32    3C    46    50    5A    64    6E    78    82    8C    96 
 B    0    B    16    21    2C    37    42    4D    58    63    6E    79    84    8F    9A    A5 
 C    0    C    18    24    30    3C    48    54    60    6C    78    84    90    9C    A8    B4 
 D    0    D    1A    27    34    41    4E    5B    68    75    82    8F    9C    A9    B6    C3 
 E    0    E    1C    2A    38    46    54    62    70    7E    8C    9A    A8    B6    C4    D2 
 F    0    F    1E    2D    3C    4B    5A    69    78    87    96    A5    B4    C3    D2    E1 

[modifier] Utilisation, avantages et inconvénients

Ce format est largement utilisé en informatique car il permet une conversion facile avec le système binaire, qui est utilisé par les ordinateurs.

En outre, la notation hexadécimale est plus compacte que la notation binaire, et utilise jusqu'à quatre fois moins de chiffres que ce dernier pour représenter le même nombre.

La conversion de binaire en hexadécimal se fait en regroupant les chiffres (les bits) quatre par quatre, ou inversement en remplaçant chaque chiffre hexadécimal par 4 chiffres binaires :

 binaire 1.0101.1010.1010.1100.1111.0111 
 regroupé par 4   1    0101    1010    1010    1100    1111    0111 
 regroupé en hexadécimal    1   5  A  A  C  F  7
 hexadécimal 15A.ACF7 

La conversion avec le système décimal ne présente aucune difficulté particulière. Ainsi 15AACF7 se convertit en calculant

1×166 + 5×165 + 10×164 + 10×16³ + 12×16² + 15×161 + 7×160 = 22719735.

L'hexadécimal représente par chaque chiffre exactement la moitié d'un octet. Ceci est un avantage pour l'utilisation en informatique, où l'octet est l'unité de compte. D'autre part, les puissances naturelles du système hexadécimal correspondent aux préfixes binaires Méga-, Téra-, Exa- et Yotta- (étant seize à la puissance de cinq, dix, quinze et vingt respectivement). Les multiples binaires intermédiaires : kilo-, Giga-, Péta- et Zetta- sont respectivement 0x400 unités, 0x400 Mebi, 0x400 Tebi et 0x400 Exbi.

La conversion de texte de l'écriture alphabétique vers la notation hexadécimale peut s'opérer en utilisant la notation ASCII. La lettre « A » correspond ainsi au code hexadécimal 41 et l'espace au code hexadécimal 20.

[modifier] Notation

Des notations sont utilisées, notamment dans les langages informatiques, pour différencier sans ambiguïté les chiffres hexadécimaux des autres :

  • notation préfixée : 0x123 ou 0h123 ou X'123' ou #123.
  • notation suffixée : 123h, mais 0abch.

[modifier] Système bibi-binaire

Le chanteur et humoriste Boby Lapointe avait inventé en 1968 un système hexadécimal, appelé système bibi-binaire à la fois drôle et cohérent.

[modifier] Codage des couleurs

Le Système hexadécimal est un des modes de codage informatique des couleurs des écrans d'ordinateurs.

[modifier] Notes et références

  1. Schwartzman, S. (1994). The Words of Mathematics: an etymological dictionary of mathematical terms used in English.
  2. Knuth, Donald. (1969). Donald Knuth, in The Art of Computer Programming, Volume 2.

[modifier] Voir aussi