Convertir binaire en décimal (et hexa) : étape par étape
Pour convertir binaire en décimal, multipliez chaque bit par sa valeur de position et additionnez les résultats. Les valeurs de position sont des puissances de 2 qui doublent de droite à gauche : 1, 2, 4, 8, 16, etc. Par exemple, 1011 en binaire vaut 1×8 + 0×4 + 1×2 + 1×1 = 8 + 0 + 2 + 1 = 11.
Essayez gratuitement : Convertisseur de base entière Gratuit, sans création de compte.
Ce guide montre comment convertir binaire en décimal avec deux méthodes, comment faire l'inverse, du décimal au binaire, ce qu'est l'hexadécimal et pourquoi les programmeurs l'utilisent, et comment passer du binaire à l'hexadécimal ou à l'octal sans calculatrice. Chaque exemple ci-dessous a été vérifié avec du code. Pour contrôler vos propres nombres au fil de la lecture, collez-les dans le convertisseur binaire gratuit.
Lire le binaire : les valeurs de position
Le code binaire est une information écrite avec seulement deux symboles, 0 et 1. Les ordinateurs l'utilisent parce que leurs circuits fonctionnent avec deux états, par exemple une tension basse et une tension haute. Chaque chiffre binaire s'appelle un bit, et un groupe de 8 bits forme un octet.
Le binaire est un système positionnel, comme le décimal. En décimal, chaque position vaut 10 fois celle située à sa droite (unités, dizaines, centaines). En binaire, chaque position vaut 2 fois celle située à sa droite :
| Position (depuis la droite) | 8e | 7e | 6e | 5e | 4e | 3e | 2e | 1re |
|---|---|---|---|---|---|---|---|---|
| Puissance de 2 | 2⁷ | 2⁶ | 2⁵ | 2⁴ | 2³ | 2² | 2¹ | 2⁰ |
| Valeur de position | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Un 1 signifie « compter cette valeur » et un 0 signifie « l'ignorer ».
Convertir binaire en décimal étape par étape
Méthode 1 : additionner les valeurs de position
Prenons le nombre binaire 11010110. Écrivez les valeurs de position sous les bits, gardez celles où le bit vaut 1 et additionnez-les :
| Bit | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Valeur de position | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| Bit × valeur | 128 | 64 | 0 | 16 | 0 | 4 | 2 | 0 |
128 + 64 + 16 + 4 + 2 = 214. Donc 11010110₂ = 214₁₀. Le petit indice indique la base lorsqu'elle n'est pas évidente.
Méthode 2 : doubler et ajouter
Cette méthode ne demande aucun tableau. Partez de 0, puis lisez les bits de gauche à droite : doublez le total courant et ajoutez le bit en cours.
Pour 101101 :
- 0 × 2 + 1 = 1
- 1 × 2 + 0 = 2
- 2 × 2 + 1 = 5
- 5 × 2 + 1 = 11
- 11 × 2 + 0 = 22
- 22 × 2 + 1 = 45
Donc 101101₂ = 45. Vérification avec la méthode 1 : 32 + 8 + 4 + 1 = 45.
Convertir un nombre décimal en binaire
Divisions successives par 2
Divisez le nombre par 2, notez le reste (0 ou 1) et recommencez avec le quotient jusqu'à obtenir 0. Lisez ensuite les restes de bas en haut. Voici l'exemple de 156 :
| Division | Quotient | Reste |
|---|---|---|
| 156 ÷ 2 | 78 | 0 |
| 78 ÷ 2 | 39 | 0 |
| 39 ÷ 2 | 19 | 1 |
| 19 ÷ 2 | 9 | 1 |
| 9 ÷ 2 | 4 | 1 |
| 4 ÷ 2 | 2 | 0 |
| 2 ÷ 2 | 1 | 0 |
| 1 ÷ 2 | 0 | 1 |
En lisant vers le haut, on obtient 156 = 10011100₂. Vérification : 128 + 16 + 8 + 4 = 156. L'erreur la plus fréquente consiste à lire les restes de haut en bas, ce qui donne les bits dans l'ordre inverse.
Soustraire des puissances de 2
Pour les petits nombres, il est souvent plus rapide de prendre la plus grande puissance de 2 qui tient dans le nombre, de la soustraire et de recommencer. Pour 100 : 64 tient (100 − 64 = 36), puis 32 (36 − 32 = 4), puis 4 (4 − 4 = 0). Placez un 1 sous 64, 32 et 4, et un 0 partout ailleurs : 100 = 1100100₂.
Qu'est-ce que l'hexadécimal ?
L'hexadécimal (hexa) est la base 16. Comme il lui faut 16 chiffres, il utilise après 0–9 les lettres A–F pour les valeurs 10 à 15 : A = 10, B = 11, C = 12, D = 13, E = 14, F = 15. Chaque position vaut 16 fois celle située à sa droite : 1, 16, 256, 4 096, etc.
Les programmeurs utilisent l'hexadécimal parce qu'il correspond exactement au binaire. Quatre bits offrent 16 combinaisons possibles (0000 à 1111) : un chiffre hexadécimal représente donc exactement 4 bits, et deux chiffres hexadécimaux forment exactement un octet. Le plus grand octet, 11111111, s'écrit simplement FF en hexadécimal, alors qu'en décimal il vaut 255, un nombre qui ne laisse pas voir la suite de bits. C'est pourquoi les adresses mémoire, les codes couleur, les adresses MAC et les adresses IPv6 s'écrivent en hexadécimal.
Convertir l'hexadécimal en décimal
Appliquez la même méthode des valeurs de position avec des puissances de 16, en remplaçant les lettres par leur valeur :
- 2F = 2 × 16 + 15 × 1 = 32 + 15 = 47
- 1A3 = 1 × 256 + 10 × 16 + 3 × 1 = 256 + 160 + 3 = 419
Convertir un nombre décimal en hexadécimal
Le passage du décimal à l'hexadécimal fonctionne comme celui du décimal au binaire, mais on divise par 16. Les restes de 10 à 15 deviennent les lettres A à F. Voici l'exemple de 1000 :
| Division | Quotient | Reste |
|---|---|---|
| 1000 ÷ 16 | 62 | 8 |
| 62 ÷ 16 | 3 | 14 = E |
| 3 ÷ 16 | 0 | 3 |
En lisant les restes de bas en haut, on obtient 1000 = 3E8₁₆. Vérification : 3 × 256 + 14 × 16 + 8 = 768 + 224 + 8 = 1000.
Du binaire à l'hexadécimal : grouper les bits par quatre
Comme un chiffre hexadécimal correspond à quatre bits, convertir du binaire en hexadécimal ne demande aucun calcul. Découpez le nombre binaire en groupes de quatre bits (appelés quartets, ou nibbles), en partant de la droite, puis remplacez chaque groupe à l'aide de ce tableau :
| Binaire | Hexa | Décimal | Binaire | Hexa | Décimal |
|---|---|---|---|---|---|
| 0000 | 0 | 0 | 1000 | 8 | 8 |
| 0001 | 1 | 1 | 1001 | 9 | 9 |
| 0010 | 2 | 2 | 1010 | A | 10 |
| 0011 | 3 | 3 | 1011 | B | 11 |
| 0100 | 4 | 4 | 1100 | C | 12 |
| 0101 | 5 | 5 | 1101 | D | 13 |
| 0110 | 6 | 6 | 1110 | E | 14 |
| 0111 | 7 | 7 | 1111 | F | 15 |
Exemples :
- 11010110 → 1101 0110 → D6 (et D6 = 13 × 16 + 6 = 214, le même nombre que plus haut)
- 101101 → compléter à gauche pour obtenir 0010 1101 → 2D (= 45)
La conversion de l'hexadécimal en binaire se fait en sens inverse : remplacez chaque chiffre hexadécimal par ses quatre bits. 3E8 → 0011 1110 1000 → 1111101000 une fois les zéros de tête supprimés.
L'octal en bref
L'octal est la base 8 et utilise les chiffres 0–7. Il fonctionne comme l'hexadécimal, mais avec des groupes de trois bits, car 2³ = 8. Son usage le plus connu aujourd'hui concerne les permissions de fichiers Unix. Dans chmod 755, chaque chiffre représente trois bits de permission (lecture, écriture, exécution) :
- 7 = 111 = rwx
- 5 = 101 = r-x
- 5 = 101 = r-x
755 en octal correspond donc à la suite de bits 111 101 101, soit 493 en décimal. Le Calculateur Chmod transforme les cases de permissions cochées en nombre octal, ou indique quelles permissions définit un nombre comme 755.
Où l'on rencontre ces conversions
- Adresses IPv4. Chacun des quatre nombres est un octet. 192.168.1.10 s'écrit 11000000.10101000.00000001.00001010 en binaire ; 192 = 128 + 64.
- Couleurs web. Une couleur hexadécimale comme #FF8800 se compose de trois octets : rouge FF = 255, vert 88 = 8 × 16 + 8 = 136, bleu 00 = 0. Elle équivaut donc à rgb(255, 136, 0). Le Convertisseur de couleur fait ce calcul pour n'importe quelle couleur.
- Texte. En ASCII et en Unicode, la lettre majuscule A a le code 65, soit 0x41 en hexadécimal et 01000001 en binaire. Le a minuscule vaut 97 (0x61, 01100001) ; les deux diffèrent de 32, c'est-à-dire d'un seul bit.
Préfixes : 0b, 0x et 0o
Dans le code, un préfixe indique au compilateur la base utilisée par un littéral numérique :
| Préfixe | Base | Exemple | Valeur décimale |
|---|---|---|---|
0b |
Binaire (2) | 0b1011 |
11 |
0o |
Octal (8) | 0o755 |
493 |
0x |
Hexadécimal (16) | 0x3E8 |
1000 |
0x fonctionne dans presque tous les langages. 0b est pris en charge par Python, JavaScript, Java, C# et C++. 0o est utilisé par Python et JavaScript, tandis que C et C++ écrivent l'octal avec un simple zéro initial : en C, 0755 vaut donc 493, et non 755.
La plupart des langages savent aussi convertir des chaînes pour vous :
# Python
int("1011", 2) # 11
bin(156) # '0b10011100'
hex(1000) # '0x3e8'
int("3E8", 16) # 1000
// JavaScript
parseInt("1011", 2) // 11
(1000).toString(16) // "3e8"
Number("0b1011") // 11
Un piège : en JavaScript, parseInt("0b1011") renvoie 0, car parseInt s'arrête au premier caractère qu'il ne sait pas lire et ne comprend pas le préfixe 0b. Retirez le préfixe et passez plutôt la base (radix) en argument, comme l'explique la référence MDN de parseInt.
Une remarque sur les nombres négatifs
Les ordinateurs stockent généralement les entiers négatifs en complément à deux. Pour écrire −5 sur 8 bits, partez de 5 = 00000101, inversez chaque bit pour obtenir 11111010, puis ajoutez 1 : 11111011. Lu comme un nombre non signé, le même motif vaut 251 (256 − 5), soit FB en hexadécimal. C'est pourquoi un même octet peut signifier −5 ou 251 selon que le programme le traite comme signé ou non.
Table de conversion binaire, décimal, octal et hexadécimal
| Décimal | Binaire | Octal | Hexa |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 2 | 10 | 2 | 2 |
| 3 | 11 | 3 | 3 |
| 4 | 100 | 4 | 4 |
| 5 | 101 | 5 | 5 |
| 6 | 110 | 6 | 6 |
| 7 | 111 | 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 |
| 16 | 10000 | 20 | 10 |
| 32 | 100000 | 40 | 20 |
| 64 | 1000000 | 100 | 40 |
| 100 | 1100100 | 144 | 64 |
| 127 | 1111111 | 177 | 7F |
| 128 | 10000000 | 200 | 80 |
| 255 | 11111111 | 377 | FF |
| 256 | 100000000 | 400 | 100 |
Convertir n'importe quelle base avec le convertisseur binaire
Le convertisseur binaire gratuit fonctionne dans votre navigateur. Saisissez un nombre et indiquez sa base : il affiche aussitôt la valeur en binaire, en octal, en décimal et en hexadécimal, ainsi que dans une base de sortie personnalisée.
- N'importe quelle base de 2 à 64, aussi bien pour l'entrée que pour la sortie personnalisée.
- Préfixes et majuscules : il accepte
0b,0oet0xlorsqu'ils correspondent à la base d'entrée, ainsi que les majuscules commeFFjusqu'à la base 36. Au-delà de la base 36, minuscules et majuscules sont des chiffres différents. - Erreurs claires : un chiffre invalide, comme un 2 en binaire, affiche les chiffres autorisés par la base, et un préfixe
0xavec la base 10 vous invite à passer en base 16. - Longueur en bits : il indique combien de bits le nombre nécessite, par exemple 6 pour 42 (101010).
- Grands nombres : il convertit exactement de très longs entiers, comme une adresse IPv6 complète de 128 bits écrite sous la forme d'un seul nombre.
Quelques limites à connaître : il ne convertit que les nombres entiers positifs ou nuls, donc un signe moins ou un séparateur décimal est refusé ; la sortie hexadécimale est en minuscules et sans zéros de tête ; enfin, la ligne « Base64 (64) » est un nombre en base 64 qui utilise les chiffres 0–9, a–z, A–Z, + et /, et non l'encodage de texte Base64.
Questions fréquentes (FAQ)
Quel est le plus grand nombre que l'on peut stocker sur 8 bits ?
255, soit 11111111 en binaire ou FF en hexadécimal. Huit bits offrent 2⁸ = 256 combinaisons différentes, qui couvrent les valeurs de 0 à 255. Seize bits permettent d'aller jusqu'à 65 535, et chaque bit supplémentaire double la plage.
Pourquoi les programmeurs utilisent-ils l'hexadécimal plutôt que le décimal ?
Comme chaque chiffre hexadécimal correspond exactement à quatre bits, on lit la suite de bits directement à partir des chiffres hexadécimaux. Un octet s'écrit toujours avec deux chiffres hexadécimaux (00 à FF). Le décimal n'offre pas cette correspondance : 255 et 256 se ressemblent en décimal, mais s'écrivent 11111111 et 100000000 en binaire.
Comment convertir une fraction binaire en décimal ?
Les bits situés après la virgule binaire valent 1/2, 1/4, 1/8, etc. Ainsi, 101.11₂ = 4 + 1 + 0,5 + 0,25 = 5,75. De nombreuses fractions décimales, comme 0,1, n'ont pas de représentation binaire exacte : c'est pourquoi 0.1 + 0.2 ne vaut pas exactement 0.3 dans la plupart des langages de programmation. Le convertisseur binaire ne traite que les nombres entiers.
Le code binaire est-il la même chose que l'ASCII ?
Non. Le binaire est un système de numération ; l'ASCII est une table qui attribue un nombre à chaque caractère. La lettre A a le code ASCII 65, et ce nombre est stocké sous la forme des bits 01000001.
Essayez gratuitement : Convertisseur de base entière Gratuit, sans création de compte.