L’hexadécimal en une phrase
L’hexadécimal est un système de numération positionnel en base 16 : chaque chiffre vaut 16 fois plus que le chiffre situé à sa droite, et les valeurs 10 à 15 s’écrivent avec les lettres A à F. Pour indiquer qu’un nombre est en hexadécimal, les programmeurs écrivent 0x1A (C, Java, JavaScript, Python), #1A2B3C pour les couleurs CSS, 1Ah en assembleur ou 1A₁₆ en mathématiques.
Les chiffres hexadécimaux de 0 à 15
| Décimal | Hex | Binaire | Décimal | Hex | Binaire |
|---|---|---|---|---|---|
| 0 | 0 | 0000 | 8 | 8 | 1000 |
| 1 | 1 | 0001 | 9 | 9 | 1001 |
| 2 | 2 | 0010 | 10 | A | 1010 |
| 3 | 3 | 0011 | 11 | B | 1011 |
| 4 | 4 | 0100 | 12 | C | 1100 |
| 5 | 5 | 0101 | 13 | D | 1101 |
| 6 | 6 | 0110 | 14 | E | 1110 |
| 7 | 7 | 0111 | 15 | F | 1111 |
Compter en hexadécimal
On compte en hexadécimal comme en décimal, mais la retenue intervient après F au lieu de 9 : … 8, 9, A, B, C, D, E, F, 10, 11 … 19, 1A … 1F, 20 … FF, 100. Ici, 10 signifie seize et 100 signifie 16 × 16 = 256. Deux chiffres hex couvrent un octet (00–FF = 0–255), quatre chiffres vont jusqu’à FFFF = 65 535 et huit chiffres jusqu’à FFFFFFFF = 4 294 967 295.
Pourquoi les ordinateurs utilisent l’hexadécimal
Les ordinateurs stockent tout en binaire, mais de longues suites de 0 et de 1 sont difficiles à lire et faciles à mal recopier. Comme 16 = 2⁴, un chiffre hex représente exactement quatre bits (un quartet) et deux chiffres hex un octet. Passer de l’hexadécimal au binaire se fait simplement chiffre par chiffre, et l’hex est quatre fois plus court : 1101 1110 1010 1101 s’écrit simplement DEAD. Le décimal n’a pas de relation aussi simple avec le binaire, c’est pourquoi il est rarement utilisé pour les données brutes.
Convertir l’hexadécimal en décimal et inversement
- Hexadécimal en décimal : multipliez chaque chiffre par sa puissance de 16 et additionnez :
2F= 2 × 16 + 15 = 47, et1A3F= 1 × 4096 + 10 × 256 + 3 × 16 + 15 = 6719. - Décimal en hexadécimal : divisez successivement par 16 et lisez les restes à l’envers : 200 ÷ 16 = 12, reste 8, et 12 = C, donc 200 =
C8. - Hexadécimal en binaire : remplacez chaque chiffre par ses 4 bits :
2F=0010 1111.
Nos convertisseurs font tout cela instantanément et affichent chaque étape.
Où l’hexadécimal est-il utilisé ?
- Couleurs web :
#FF6347correspond au rougeFF, au vert63et au bleu47. - Adresses mémoire : les débogueurs et les rapports de plantage affichent des pointeurs comme
0x7FFE5A3C. - Adresses MAC : six octets comme
00:1A:2B:3C:4D:5Eidentifient les cartes réseau. - Adresses IPv6 : huit groupes de quatre chiffres hex, par exemple
2001:db8::1. - Unicode : chaque caractère possède un point de code hexadécimal –
U+00E9correspond à é etU+1F600à 😀. - Hashs et identifiants : un hash SHA-256 compte 64 caractères hex, et les UUID comme les identifiants de commit Git s’écrivent en hexadécimal.
- Dumps hexadécimaux : les éditeurs hexadécimaux affichent le contenu des fichiers octet par octet ; tout fichier PDF commence par
25 50 44 46(« %PDF »). - Codes d’erreur : Windows signale des erreurs comme
0x80070005(accès refusé).
Hexadécimal, décimal, octal et binaire : comparaison
| Système | Base | Chiffres | 255 s’écrit | Usage typique |
|---|---|---|---|---|
| Binaire | 2 | 0–1 | 11111111 | Matériel, indicateurs binaires |
| Octal | 8 | 0–7 | 377 | Permissions de fichiers Unix (chmod 755) |
| Décimal | 10 | 0–9 | 255 | Nombres de la vie courante |
| Hexadécimal | 16 | 0–9, A–F | FF | Octets, couleurs, adresses, hashs |
Les nombres négatifs en hexadécimal
L’hexadécimal n’a pas de signe particulier : les nombres négatifs sont donc généralement stockés en complément à deux, où le bit de poids fort d’une valeur de taille fixe indique qu’elle est négative. En octet signé, 7F vaut 127, 80 vaut −128 et FF vaut −1 ; en entier 32 bits, FFFFFFFF vaut −1. En mathématiques et dans notre calculatrice, vous pouvez aussi écrire simplement un signe moins : −1A = −26.
Questions fréquentes
Pourquoi l’hexadécimal utilise-t-il des lettres ?
La base 16 a besoin de seize chiffres d’un seul caractère, or il n’existe que dix chiffres. Les lettres A–F représentent les valeurs 10–15. Majuscules et minuscules sont équivalentes : ff = FF = 255.
Que signifie 0x devant un nombre ?
Ce préfixe indique que le nombre est en hexadécimal en C, C++, Java, JavaScript, Python et dans de nombreux autres langages : 0x10 vaut 16, et non dix. Le CSS utilise plutôt # pour les couleurs, et le code assembleur ajoute souvent un h final (10h).
L’hexadécimal, est-ce la même chose que le Base64 ?
Non. L’hex écrit chaque octet avec deux caractères parmi 0–9 et A–F : la taille des données double, mais elles restent faciles à lire octet par octet. Le Base64 utilise 64 caractères et regroupe 3 octets en 4 caractères, ce qui est plus compact (environ 33 % de surcoût) mais illisible octet par octet.
Dernière mise à jour: