# Système hexadécimal

| 0$_{hex}$ | = | 0$_{dec}$ | = | 0$_{oct}$ | 0 | 0 | 0 | 0 |
| 1$_{hex}$ | = | 1$_{dec}$ | = | 1$_{oct}$ | 0 | 0 | 0 | 1 |
| 2$_{hex}$ | = | 2$_{dec}$ | = | 2$_{oct}$ | 0 | 0 | 1 | 0 |
| 3$_{hex}$ | = | 3$_{dec}$ | = | 3$_{oct}$ | 0 | 0 | 1 | 1 |
| 4$_{hex}$ | = | 4$_{dec}$ | = | 4$_{oct}$ | 0 | 1 | 0 | 0 |
| 5$_{hex}$ | = | 5$_{dec}$ | = | 5$_{oct}$ | 0 | 1 | 0 | 1 |
| 6$_{hex}$ | = | 6$_{dec}$ | = | 6$_{oct}$ | 0 | 1 | 1 | 0 |
| 7$_{hex}$ | = | 7$_{dec}$ | = | 7$_{oct}$ | 0 | 1 | 1 | 1 |
| 8$_{hex}$ | = | 8$_{dec}$ | = | 10$_{oct}$ | 1 | 0 | 0 | 0 |
| 9$_{hex}$ | = | 9$_{dec}$ | = | 11$_{oct}$ | 1 | 0 | 0 | 1 |
| A$_{hex}$ | = | 10$_{dec}$ | = | 12$_{oct}$ | 1 | 0 | 1 | 0 |
| B$_{hex}$ | = | 11$_{dec}$ | = | 13$_{oct}$ | 1 | 0 | 1 | 1 |
| C$_{hex}$ | = | 12$_{dec}$ | = | 14$_{oct}$ | 1 | 1 | 0 | 0 |
| D$_{hex}$ | = | 13$_{dec}$ | = | 15$_{oct}$ | 1 | 1 | 0 | 1 |
| E$_{hex}$ | = | 14$_{dec}$ | = | 16$_{oct}$ | 1 | 1 | 1 | 0 |
| F$_{hex}$ | = | 15$_{dec}$ | = | 17$_{oct}$ | 1 | 1 | 1 | 1 |
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

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, 4D5$_{16}$ vaut (5 × 16$^0$ + 13 × 16$^1$ + 4 × 16$^2$)$_{10}$ = 1 237$_{10}$.

## 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 = 2$^4$, à 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 41$_{16}$ en système hexadécimal, soit 01000001$_2$ en binaire (0100$_2$ pour 4 et 0001$_2$ 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 = 2$^4$. 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 a$_3$a$_2$a$_1$a$_0$ et b$_3$b$_2$b$_1$b$_0$ on a bien :
    ${\begin{aligned}b\times 16+a&=(b_{3}\times 2^{3}+b_{2}\times 2^{2}+b_{1}\times 2^{1}+b_{0}\times 2^{0})\times 2^{4}+a_{3}\times 2^{3}+a_{2}\times 2^{2}+a_{1}\times 2^{1}+a_{0}\times 2^{0}\\&=b_{3}\times 2^{7}+b_{2}\times 2^{6}+b_{1}\times 2^{5}+b_{0}\times 2^{4}+a_{3}\times 2^{3}+a_{2}\times 2^{2}+a_{1}\times 2^{1}+a_{0}\times 2^{0}\end{aligned}}$
On justifie de même la conversion réciproque.
Par exemple :
| Nombre en binaire | 1010110101010110011110111 | 1010110101010110011110111 | 1010110101010110011110111 | 1010110101010110011110111 | 1010110101010110011110111 | 1010110101010110011110111 | 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 | 15AACF7 | 15AACF7 | 15AACF7 | 15AACF7 | 15AACF7 | 15AACF7 |
| Nombre en décimal (cf. ci-dessous) | 22719735 | 22719735 | 22719735 | 22719735 | 22719735 | 22719735 | 22719735 |
La conversion vers le système décimal est réalisée en effectuant la somme :
    $\sum _{i=0}^{n-1}h_{i}16^{i}$
où n est le nombre de chiffres et $h_{i}$ la valeur du chiffre hexadécimal à la position i.
Ainsi 15AACF7 se convertit en décimal de la façon suivante :
    1×16$^6$ + 5×16$^5$ + 10×16$^4$ + 10×16$^3$ + 12×16$^2$ + 15×16$^1$ + 7×16$^0$ = 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.

## 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, $123_{(16)}$ (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 :
| × | 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 basé sur le système RGB