Guide du système hexadécimal
Hexadecimal System
The hexadecimal system uses 16 symbols: 0-9 and A-F (A=10, B=11, C=12, D=13, E=14, F=15). It's a shorthand for binary - each 4 bits is one hex digit. Example: 11111111₂ = FF₁₆ = 255₁₀. Used in programming and colors.
Pourquoi l'hexadécimal compte
255 en binaire s'écrit 11111111 (8 chiffres). En hexadécimal, FF (2 caractères) – plus facile à lire et à saisir. Les adresses mémoire, couleurs RVB et points de code Unicode utilisent l'hexadécimal. Définitions de couleurs en CSS : #FF0000 (rouge), #00FF00 (vert), #0000FF (bleu).
Applications pratiques
Dans les couleurs CSS : #3498db bleu, #2ecc342 vert. Dans les UUID v5 : 550e8400-ea29-41d3-af15-6528adf68cc2. Dumps ROM/EEPROM en hexadécimal. Adresses MAC : aa:bb:cc:dd:ee:ff. Dans les débogueurs, adresses mémoire sous la forme 0x0040A7C0.
#888 n'est pas #808080, et l'abrégé CSS couvre 0,02% des couleurs
L'hexadécimal est du binaire compact : un chiffre vaut exactement quatre bits, donc deux chiffres font un octet. C'est pourquoi une couleur s'écrit en trois paires. L'abrégé CSS à trois chiffres se développe en doublant chaque chiffre plutôt qu'en le mettant à l'échelle, si bien que la plupart des couleurs n'ont aucun abrégé — gris moyen compris.
Comment ça marche
- Convertit entre hexadécimal, décimal et binaire, chaque chiffre hexadécimal valant quatre bits.
- Traite les valeurs de couleur, où deux chiffres hexadécimaux donnent les 256 niveaux d'un canal.
- Rend explicite la correspondance chiffre-bits, sur laquelle reposent toutes ces conventions.
1 chiffre hexa = 4 bits = 16 valeurs (0–F) 2 chiffres hexa = 8 bits = 256 valeurs (00–FF) #RRGGBB = 3 canaux × 8 bits = 24 bits = 16 777 216 couleurs l'abrégé #RGB se développe par doublement : #F0A → #FF00AA
Exemple chiffré
Comparer la forme complète à six chiffres et l'abrégé à trois.
- #RRGGBB fait 24 bits : 16 777 216 couleurs
- #RGB fait 12 bits : 4 096 couleurs
- l'abrégé couvre 0,0244% de l'espace
- #888 se développe en #888888 = 136 par canal
- or le gris moyen est #808080 = 128 par canal
#888 et #808080 diffèrent de 8 niveaux sur chaque canal, et aucun code à trois chiffres ne produit #808080. L'abrégé n'est pas un raccourci de toutes les couleurs : c'est un petit sous-ensemble qui se trouve s'écrire en moitié moins de caractères.
Lire le résultat
- Le développement double le chiffre, il ne met pas la plage à l'échelle. #A devient #AA, non une valeur placée proportionnellement — d'où une palette abrégée qui tombe sur 0x00, 0x11, 0x22 et ainsi de suite par pas de 17, en manquant tout l'entre-deux.
- L'hexadécimal perdure parce que la correspondance avec le binaire est exacte et mécanique. Un octet fait toujours deux caractères, la conversion ne demande aucun calcul et rien n'est arrondi — les mêmes raisons qui le font servir aux empreintes, aux adresses MAC et aux vidages mémoire.
- La casse est sans effet sur les valeurs de couleur et dans la plupart des analyseurs : #FF00AA et #ff00aa sont identiques. Elle ne compte pour les empreintes que là où une spécification le dit, et comparer des chaînes hexadécimales sans normaliser la casse produit fréquemment de fausses différences.
- Le préfixe 0x signale l'hexadécimal dans la plupart des langages, # le signale en CSS, et certains contextes n'en emploient aucun. Une suite nue de chiffres et de lettres est ambiguë : 10 vaut dix en décimal et seize en hexadécimal, et rien dans les caractères ne le dit.
Questions fréquentes
- Pourquoi les couleurs sont-elles écrites en hexadécimal ?
- Parce que chaque canal est un octet et qu'un octet fait exactement deux chiffres hexadécimaux. En décimal, la même couleur s'écrit rgb(255, 0, 170) : trois nombres de longueur variable avec séparateurs, contre six caractères fixes qui se découpent proprement en canaux.
- Peut-on toujours abréger une couleur hexadécimale ?
- Seulement si chaque paire est un chiffre doublé. #FF00AA s'abrège en #F0A parce que chaque paire se répète ; #808080 ne s'abrège pas du tout, car 80 n'est pas un chiffre doublé. Environ une couleur sur 4 096 possède un abrégé.