Système hexadécimal
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).
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 | |||
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
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
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.
Conversion
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 :
- b×16 + a = (b3×23 + b2 ×22 + b1×21 + b0×20)×24 + a3×23 + a2×22 + a1×21 + a0×20
- b×16 + a = b3×27 + b2 ×26 + b1×25 + b0×24 + a3×23 + a2×22 + a1×21 + a0×20
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 :
où 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 = 22719735.
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.
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 (langage C et dérivés), &h123 (BASIC), $123 (en Pascal, et dérivés comme le VHDL en électronique), mais aussi #123 (Common Lisp), 0h123 (Texas Instrument) ou X'123' (COBOL)
- notation suffixée : 123h, (arithmétique)
Opérations arithmétiques
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 :
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 |
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.
Codage des couleurs
Le système hexadécimal est un des modes de codage informatique des couleurs des écrans d'ordinateurs.