Qu'est-ce qu'un système positionnel ?
Dans le nombre décimal 4 095, le 4 ne vaut pas 4 : il vaut 4 000, parce qu'il est à la place des milliers. Chaque position multiplie le chiffre par une puissance de 10 (1, 10, 100, 1 000…). C'est le système positionnel, et la base est le nombre de chiffres différents utilisés : dix en décimal.
Le binaire fonctionne de la même façon, mais en base 2 : il n'existe que le 0 et le 1, et chaque place vaut le double de la précédente. L'hexadécimal utilise la base 16 : les seize chiffres sont 0 à 9 et les lettres A à F, et chaque place vaut 16 fois la précédente. Les ordinateurs travaillent en binaire parce qu'un circuit n'a besoin de distinguer que deux états (éteint et allumé), et l'hexadécimal est une façon courte d'écrire ces bits.
| Position (de droite à gauche) | Valeur en binaire | Valeur en hexadécimal |
|---|---|---|
| 1re | 1 | 1 |
| 2e | 2 | 16 |
| 3e | 4 | 256 |
| 4e | 8 | 4 096 |
| 5e | 16 | 65 536 |
| 6e | 32 | 1 048 576 |
| 7e | 64 | 16 777 216 |
| 8e | 128 | 268 435 456 |
Du binaire au décimal, à la main
On écrit chaque chiffre avec la valeur de sa place et on additionne uniquement les places où il y a un 1. Exemple avec 1101 : de droite à gauche, les places valent 1, 2, 4 et 8.
- Écris le nombre et, dessous, la valeur de chaque position : 1 1 0 1 au-dessus de 8 4 2 1.
- Regarde ce qu'il y a à chaque place : un 1 à la place du 8, un 1 à celle du 4, un 0 à celle du 2 et un 1 à celle du 1.
- Ignore les places qui contiennent un 0 (ici, celle du 2).
- Additionne : 8 + 4 + 0 + 1 = 13. Donc 1101 en binaire vaut 13 en décimal.
Avec plus de chiffres, c'est pareil : 11111111 donne 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255, la plus grande valeur qui tienne sur 8 bits. Et 10110110 donne 128 + 32 + 16 + 4 + 2 = 182.
Du décimal au binaire, par divisions successives
On divise le nombre par 2 encore et encore, en notant le reste de chaque division (toujours 0 ou 1), jusqu'à obtenir un quotient de 0. Les restes, lus de bas en haut, forment le nombre binaire. Exemple avec 45 :
- 45 ÷ 2 = 22, reste 1
- 22 ÷ 2 = 11, reste 0
- 11 ÷ 2 = 5, reste 1
- 5 ÷ 2 = 2, reste 1
- 2 ÷ 2 = 1, reste 0
- 1 ÷ 2 = 0, reste 1
En lisant les restes de bas en haut, on obtient 101101. Pour vérifier, additionne : 32 + 8 + 4 + 1 = 45.
Il existe une autre méthode que beaucoup préfèrent : soustraire des puissances de 2, de la plus grande à la plus petite. Pour 200 : le 128 entre (il reste 72), le 64 entre (il reste 8), 32 et 16 n'entrent pas, mais le 8 oui (il reste 0). Les places utilisées sont 128, 64 et 8, donc 200 = 11001000.
Hexadécimal : seize chiffres et un tableau à garder sous la main
Comme il n'existe pas de chiffres pour 10 à 15, on utilise les lettres A, B, C, D, E et F. Un chiffre hexadécimal équivaut exactement à quatre bits (un « quartet »), et c'est pourquoi il est si pratique : un octet, de 8 bits, s'écrit avec seulement deux chiffres hexadécimaux.
Pour passer de l'hexadécimal au décimal, multiplie chaque chiffre par la puissance de 16 de sa place et additionne. Par exemple, 3F = 3 × 16 + 15 = 63 et A3 = 10 × 16 + 3 = 163.
| Décimal | Binaire (4 bits) | Octal | Hexadécimal |
|---|---|---|---|
| 0 | 0000 | 0 | 0 |
| 1 | 0001 | 1 | 1 |
| 2 | 0010 | 2 | 2 |
| 3 | 0011 | 3 | 3 |
| 4 | 0100 | 4 | 4 |
| 5 | 0101 | 5 | 5 |
| 6 | 0110 | 6 | 6 |
| 7 | 0111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
Pourquoi on utilise l'hexadécimal : octets, couleurs et adresses
Un octet fait 8 bits et va de 0 à 255 (00000000 à 11111111). Écrire des bits à la main est lent et source d'erreurs ; en hexadécimal, le même octet tient sur deux caractères, de 00 à FF. Pour passer du binaire à l'hexadécimal, sépare les bits en groupes de quatre à partir de la droite et remplace chaque groupe par son chiffre du tableau. Exemple : 11010111 se coupe en 1101 et 0111, qui sont D et 7, donc il vaut D7. En décimal, cela donne 13 × 16 + 7 = 215.
Le cas le plus connu, ce sont les couleurs web. Dans #FF8800, il y a trois octets : FF pour le rouge (255), 88 pour le vert (136) et 00 pour le bleu (0). C'est un orange vif : tout le rouge, un peu plus de la moitié du vert et pas de bleu. L'hexadécimal apparaît aussi dans les adresses mémoire, les codes d'erreur et les identifiants réseau.
Du texte au binaire avec l'ASCII
Un ordinateur stocke chaque lettre sous forme de nombre, et ce nombre sous forme de bits. Dans la table ASCII, le A vaut 65, soit 01000001 en binaire sur 8 bits. Le mot « Hi » compte deux lettres : H vaut 72 (01001000) et i vaut 105 (01101001), donc il s'écrit 01001000 01101001. Avec « Hola », ce sont 72, 111, 108 et 97, c'est-à-dire 01001000 01101111 01101100 01100001, ou en hexadécimal 48 6F 6C 61.
L'outil utilise l'encodage UTF-8 : pour les lettres de base de l'anglais, chaque caractère occupe un octet de 8 bits, mais un é, un ñ ou un émoji occupent plusieurs octets et donnent donc plus de 8 bits. Par exemple, le ñ fait deux octets : 11000011 10110001 (C3 B1 en hexadécimal).
Comment faire tout cela avec l'outil
Le convertisseur « Binaire, décimal et hexadécimal » sert à vérifier tes calculs à la main ou à résoudre de longs nombres sans erreur.
- Écris le nombre dans le champ de sa base : « Décimal (base 10) », « Binaire (base 2) », octal ou « Hexadécimal (base 16) ». Les trois autres se remplissent tout seuls.
- Si le chiffre ne correspond pas à la base (un 2 en binaire, par exemple), l'outil te le signale.
- Pour du texte, écris-le dans le champ « Texte » et regarde « Binaire (8 bits par caractère) » et l'hexadécimal par octets. Tu peux aussi coller des bits par groupes de 8 pour revenir au texte.
- Pour les bases moins courantes, utilise « N'importe quelle base (de 2 à 36) » : tu choisis la base de départ, la base d'arrivée et le nombre.
Les limites : il ne convertit que des entiers positifs ou nuls (sans décimales ni signe) et n'ajoute pas de zéros à gauche à ta place ; si tu veux 8 bits fixes, tu dois compléter à la main (13 donne 00001101). Rien de ce que tu écris ne quitte ton navigateur.
Erreurs courantes
- Lire les restes à l'envers : dans les divisions successives, le premier reste est le chiffre le plus à droite, pas le plus à gauche.
- Oublier les zéros à gauche quand ils sont nécessaires : 13 donne 1101, mais sur un octet cela fait 00001101. Cela compte quand la longueur fait partie de la donnée, comme dans une couleur ou un masque réseau.
- Confondre la lettre O avec le zéro, ou le B hexadécimal (11) avec un 8 en copiant. En hexadécimal, les lettres valent la même chose en majuscule et en minuscule, mais ce ne sont pas des chiffres.
- Laisser le préfixe 0x ou le signe # lors de la conversion : ce sont de simples marques indiquant que le nombre est hexadécimal, et il faut les retirer avant de coller.
- Croire que 10 en binaire vaut dix : il vaut deux. Le même « 10 » vaut 2, 10 ou 16 selon la base.
Exercices résolus pour s'entraîner
Essaie de résoudre chacun avant de regarder la réponse, puis vérifie avec l'outil.
- Passe 10110110 en décimal et en hexadécimal. Réponse : 128 + 32 + 16 + 4 + 2 = 182 ; en groupes de quatre, 1011 0110 = B6.
- Passe 200 en binaire et en hexadécimal. Réponse : 11001000 et C8 (12 × 16 + 8 = 200).
- Passe 7F en binaire. Réponse : 7 = 0111 et F = 1111, donc 01111111, qui vaut 127 en décimal.
- Écris « OK » en binaire. Réponse : O vaut 79 et K vaut 75, soit 01001111 01001011.
Questions fréquentes
Comment passer 1101 du binaire au décimal ?
Tu additionnes les valeurs des places où il y a un 1 : 8 + 4 + 1 = 13. Le deuxième chiffre en partant de la droite est un 0, donc le 2 n'est pas additionné.
Combien font 255 en binaire et en hexadécimal ?
255 s'écrit 11111111 en binaire et FF en hexadécimal. C'est la plus grande valeur qui tienne dans un octet de 8 bits.
Pourquoi l'hexadécimal utilise-t-il des lettres ?
Parce qu'il lui faut seize symboles différents et que le système décimal n'en fournit que dix (0 à 9). C'est pourquoi A vaut 10, B vaut 11, C vaut 12, D vaut 13, E vaut 14 et F vaut 15.
Combien de nombres différents peut-on écrire avec 8 bits ?
256, de 0 à 255. En général, avec n bits, on peut représenter 2 puissance n valeurs.
L'outil convertit-il les nombres négatifs ou à virgule ?
Non, uniquement les entiers positifs ou nuls. Pour le texte, il utilise l'UTF-8 : les lettres accentuées et les émojis donnent donc plus de 8 bits.