Une base de numération (ou racine) est le nombre de chiffres distincts qu'un système utilise avant de passer à la colonne suivante. Nous comptons en base 10 parce que nous avons dix doigts ; les ordinateurs utilisent la base 2 parce qu'un fil ou un transistor est allumé ou éteint. L'octal (base 8) et l'hexadécimal (base 16) sont des abréviations du binaire que les humains peuvent lire. Convertissez de l'un à l'autre avec le Convertisseur de Bases.
La valeur de position fonctionne pareil dans toutes les bases
En décimal, 202 signifie 2 × 100 + 0 × 10 + 2 × 1 : chaque colonne vaut dix fois celle de sa droite. En binaire, chaque colonne vaut deux fois celle de sa droite : les colonnes sont 1, 2, 4, 8, 16, 32, 64, 128. Voici 202 écrit en binaire :
| Position | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|---|
| Bit de 202 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 |
Additionnez les colonnes qui contiennent un 1 : 128 + 64 + 8 + 2 = 202. Le décimal 202 est donc le binaire 11001010.
Convertir du décimal au binaire
Divisez par 2 à plusieurs reprises et notez les restes ; lisez-les du dernier au premier :
| Division | Quotient | Reste (bit) |
|---|---|---|
| 202 ÷ 2 | 101 | 0 |
| 101 ÷ 2 | 50 | 1 |
| 50 ÷ 2 | 25 | 0 |
| 25 ÷ 2 | 12 | 1 |
| 12 ÷ 2 | 6 | 0 |
| 6 ÷ 2 | 3 | 0 |
| 3 ÷ 2 | 1 | 1 |
| 1 ÷ 2 | 0 | 1 |
Lus de bas en haut, les restes donnent 11001010. La conversion inverse, du binaire au décimal, est la somme des colonnes ci-dessus (essayez les convertisseurs Convertisseur Binaire vers Décimal et Convertisseur Décimal vers Binaire).
Hexadécimal : le binaire rendu lisible
L'hexadécimal utilise 16 chiffres : 0-9 puis A-F pour 10-15. Un chiffre hexadécimal vaut exactement quatre bits : convertir revient à regrouper :
| Hex | Décimal | Binaire |
|---|---|---|
0 |
0 | 0000 |
1 |
1 | 0001 |
2 |
2 | 0010 |
3 |
3 | 0011 |
4 |
4 | 0100 |
5 |
5 | 0101 |
6 |
6 | 0110 |
7 |
7 | 0111 |
8 |
8 | 1000 |
9 |
9 | 1001 |
A |
10 | 1010 |
B |
11 | 1011 |
C |
12 | 1100 |
D |
13 | 1101 |
E |
14 | 1110 |
F |
15 | 1111 |
Découpez 11001010 en groupes de quatre, 1100 et 1010, et cherchez chacun : C et A. Ainsi 11001010 vaut CA en hexadécimal et 202 vaut 0xCA. Un octet (8 bits) fait toujours exactement deux chiffres hexadécimaux, c'est pourquoi l'hexadécimal apparaît dans les vidages mémoire, les adresses MAC, les signatures de fichier et les codes couleur. Voyez les convertisseurs Convertisseur Hex vers Décimal et Convertisseur Décimal vers HEX.
L'octal regroupe les bits par trois : 11 001 010 devient 3 1 2, donc 202 vaut 312 en octal. Il survit surtout dans les permissions de fichiers Unix (Aide-mémoire chmod et permissions de fichiers).
Couleurs hexadécimales
Une couleur web comme #FF8800 est faite de trois octets : rouge FF = 255, vert 88 = 136, bleu 00 = 0. Chaque canal va de 00 (0) à FF (255), soit 256 niveaux ; 256 × 256 × 256 donne environ 16,7 millions de couleurs. Convertissez des codes couleur avec le Convertisseur HEX vers RVB.
Opérations sur les bits
Les programmes travaillent souvent sur des bits individuels. Voici les opérations courantes sur 202 :
| Opération | Binaire | Résultat |
|---|---|---|
202 AND 15: garde les 4 bits de poids faible |
11001010 → 00001010 |
10 (A) |
202 >> 4: décale de 4 positions vers la droite |
11001010 → 00001100 |
12 (C) |
202 XOR 255: inverse tous les bits |
11001010 → 00110101 |
53 (35) |
Des masques comme AND 15 extraient une partie d'une valeur, et les décalages multiplient ou divisent par des puissances de deux.
Nombres négatifs
Un octet peut se lire non signé (0 à 255) ou signé (-128 à 127). Les nombres signés utilisent en général le complément à deux, où le bit de poids fort vaut -128. Les mêmes bits 11001010 valent 202 non signé et -54 signé (202 - 256). C'est pourquoi un dépassement d'octet peut transformer une valeur positive en négative.
Aide-mémoire
- Chiffres décimaux
0-9, binaires0-1, octaux0-7, hexadécimaux0-9etA-F. - Dans le code, des préfixes indiquent la base :
0bbinaire,0ooctal,0xhexadécimal (0b11001010,0o312,0xCAvalent tous 202). - 8 bits = 1 octet = 2 chiffres hexadécimaux = valeurs de 0 à 255. Puissances de deux à retenir : 2^8 = 256, 2^10 = 1 024, 2^16 = 65 536.
Faites des calculs directement en binaire ou en hexadécimal avec la Calculateur binaire et la Calculatrice Hexadécimale. Termes liés : Binaire, Hexadécimal et ASCII.