Aller au contenu

Système hexadécimal

Un article de Wikipédia, l'encyclopédie libre.
(Redirigé depuis Base 16)
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
Astuce pour compter en hexadécimal de 00 jusqu'à FF(255 en décimal) à l'aide de 8 doigts et 2 pouces.

Le système hexadécimal est un système de numération positionnel en base 16. Il utilise ainsi 16 symboles, en général les chiffres arabes pour les dix premiers chiffres et les lettres A à F pour les six suivants (en majuscule ou minuscule).

Le système hexadécimal est utilisé notamment en électronique numérique et en informatique car il est particulièrement commode et permet un compromis entre le code binaire des machines et une base de numération pratique à utiliser pour les ingénieurs. En effet, chaque chiffre hexadécimal correspond exactement à quatre chiffres binaires (ou bits), rendant les conversions très simples et fournissant une écriture plus compacte. L'hexadécimal a été utilisé la première fois en 1956 par les ingénieurs de l'ordinateur Bendix G-15.

Écriture des entiers

[modifier | modifier le code]

Le système hexadécimal nécessite l'introduction de 16 symboles représentant les 16 premiers entiers naturels, appelés chiffres hexadécimaux :

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

Un entier s'é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, 4D516 vaut (5 × 160 + 13 × 161 + 4 × 162)10 = 1 23710.

Utilisation

[modifier | modifier le code]

Le système hexadécimal est largement utilisé en informatique car il permet une conversion sans aucun calcul avec le système binaire, système employé par les ordinateurs, du fait que 16 est une puissance de 2. Comme 16 = 24, à un chiffre en base 16 correspondent exactement quatre chiffres dans la base 2, et il est possible de traduire du binaire vers de l'hexadécimal en groupant les chiffres binaires 4 par 4, et de l'hexadécimal vers le binaire simplement en traduisant chaque chiffre hexadécimal. Un octet (8 chiffres binaires) s'écrit avec 2 chiffres hexadécimaux. Par exemple l'octet qui représente la lettre A en ASCII s'écrit 4116 en système hexadécimal, soit 010000012 en binaire (01002 pour 4 et 00012 pour 1).

Cette facilité de conversion a conduit la notation hexadécimale à être utilisée comme notation compacte et lisible (quatre fois moins de chiffres) pour des données, en particulier non numériques, codées en binaire.

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, du fait que 16 = 24. La justification de la conversion d'hexadécimal en binaire est donnée pour des nombres de 0 à 255 qui s'écrivent avec au plus deux chiffres hexadécimaux ou 8 chiffres binaires, mais se généralise sans difficulté autre que de notation. On suppose que les deux chiffres hexadécimaux a et b s'écrivent en base 2 a3a2a1a0 et b3b2b1b0 on a bien :

On justifie de même la conversion réciproque.

Par exemple :

Nombre en binaire 1010110101010110011110111
Groupes de 4 chiffres binaires, en partant de la droite 1 0101 1010 1010 1100 1111 0111
Chiffres hexadécimaux 1 5 A A C F 7
Nombre en hexadécimal 15AACF7
Nombre en décimal (cf. ci-dessous) 22719735

La conversion vers le système décimal est réalisée en effectuant la somme :

n est le nombre de chiffres et la valeur du chiffre hexadécimal à la position i.

Ainsi 15AACF7 se convertit en décimal de la façon suivante :

1×166 + 5×165 + 10×164 + 10×163 + 12×162 + 15×161 + 7×160 = 22 719 735.

La conversion du décimal vers l'hexadécimal se fait par une suite de divisions entières ou bien en utilisant le binaire comme base intermédiaire.

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

  • notation suffixée : 123h, (arithmétique)

Opérations arithmétiques

[modifier | modifier le code]

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 soit par la technique de la multiplication par glissement ou par la technique de la multiplication par jalousies et en utilisant la table de multiplication suivante :

 ×   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 

Système bibi-binaire

[modifier | modifier le code]

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.

Codage des couleurs

[modifier | modifier le code]

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

Notes et références

[modifier | modifier le code]