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)8e7e6e5e4e3e2e1re
Puissance de 22⁷2⁶2⁵2⁴2³2²2¹2⁰
Valeur de position1286432168421

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 :

Bit11010110
Valeur de position1286432168421
Bit × valeur128640160420

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 :

  1. 0 × 2 + 1 = 1
  2. 1 × 2 + 0 = 2
  3. 2 × 2 + 1 = 5
  4. 5 × 2 + 1 = 11
  5. 11 × 2 + 0 = 22
  6. 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 :

DivisionQuotientReste
156 ÷ 2780
78 ÷ 2390
39 ÷ 2191
19 ÷ 291
9 ÷ 241
4 ÷ 220
2 ÷ 210
1 ÷ 201

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 :

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 :

DivisionQuotientReste
1000 ÷ 16628
62 ÷ 16314 = E
3 ÷ 1603

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 :

BinaireHexaDécimalBinaireHexaDécimal
000000100088
000111100199
0010221010A10
0011331011B11
0100441100C12
0101551101D13
0110661110E14
0111771111F15

Exemples :

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) :

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

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éfixeBaseExempleValeur décimale
0bBinaire (2)0b101111
0oOctal (8)0o755493
0xHexadécimal (16)0x3E81000

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écimalBinaireOctalHexa
0000
1111
21022
31133
410044
510155
611066
711177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F
16100002010
321000004020
64100000010040
100110010014464
12711111111777F
1281000000020080
25511111111377FF
256100000000400100

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.

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.