Les poids des positions en binaire
Les nombres décimaux utilisent dix chiffres, et chaque position vaut dix fois la position à sa droite : unités, dizaines, centaines. Le binaire fonctionne de la même façon avec deux chiffres, 0 et 1 : chaque position vaut donc le double de celle à sa droite. Le bit le plus à droite vaut 1, le suivant 2, puis 4, 8, 16 et ainsi de suite, toujours en doublant.
Huit bits forment un octet, et les poids d'un octet valent la peine d'être retenus, car on les retrouve partout en informatique, de la taille des fichiers aux masques de sous-réseau.
| Position du bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Poids | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Du binaire au décimal, étape par étape
Prenons 11010110 comme exemple. Écrivez les poids au-dessus ou en dessous des chiffres, en commençant par 1 à droite. Puis additionnez uniquement les poids qui ont un 1 en face : 128 + 64 + 16 + 4 + 2 = 214. C'est toute la méthode, et elle fonctionne pour des nombres de n'importe quelle longueur.
Pour les nombres longs, découpez les bits en groupes de quatre en partant de la droite et convertissez chaque groupe en hexadécimal, puis en décimal, ou collez simplement le nombre dans le convertisseur, qui accepte toutes les longueurs et n'arrondit pas.
| Binaire | Calcul | Décimal |
|---|---|---|
| 101 | 4 + 1 | 5 |
| 1111 | 8 + 4 + 2 + 1 | 15 |
| 100000 | 32 | 32 |
| 11010110 | 128 + 64 + 16 + 4 + 2 | 214 |
| 11111111 | 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 | 255 |
| 11111101010 | 1024 + 512 + 256 + 128 + 64 + 32 + 8 + 2 | 2026 |
Essayez ici : Binaire en décimal
Ouvrir la page complète de l'outilDu décimal au binaire : diviser par deux
La conversion inverse repose sur des divisions successives. Divisez le nombre par 2, notez le reste (0 ou 1), et continuez avec le quotient jusqu'à arriver à 0. Les restes lus du dernier au premier donnent le nombre binaire.
Pour 214 : 214 / 2 = 107 reste 0, 107 / 2 = 53 reste 1, 53 / 2 = 26 reste 1, 26 / 2 = 13 reste 0, 13 / 2 = 6 reste 1, 6 / 2 = 3 reste 0, 3 / 2 = 1 reste 1, 1 / 2 = 0 reste 1. En lisant les restes de bas en haut, on obtient 11010110, le nombre de départ de l'exemple précédent.
Une autre méthode consiste à soustraire le plus grand poids qui rentre : 214 moins 128 laisse 86, moins 64 laisse 22, moins 16 laisse 6, moins 4 laisse 2, moins 2 laisse 0. Écrivez un 1 pour chaque poids utilisé et un 0 pour les autres.
L'hexadécimal : quatre bits par chiffre
Les longs nombres binaires sont difficiles à lire, alors les programmeurs les écrivent en hexadécimal. L'hexadécimal a seize chiffres, de 0 à 9 et de A à F, et un chiffre hexadécimal représente exactement quatre bits. Pour convertir, découpez le nombre binaire en groupes de quatre en partant de la droite et remplacez chaque groupe à l'aide du tableau. 1101 0110 devient D6, et D6 en décimal vaut 13 x 16 + 6 = 214.
| 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 |
Les nombres négatifs : le complément à deux
Les ordinateurs stockent les entiers négatifs en complément à deux. Le bit de poids fort d'un nombre de taille fixe a un poids négatif : sur 8 bits, le bit le plus à gauche vaut -128 au lieu de 128. Ainsi, 11111111 vaut -128 + 127 = -1, et 10000000 vaut -128.
Pour trouver la représentation d'un nombre négatif, écrivez la valeur positive en binaire, inversez chaque bit et ajoutez 1. Pour -6 sur 8 bits : 6 s'écrit 00000110, inversé 11111001, plus 1 donne 11111010. Lus comme un nombre non signé, ces mêmes bits valent 250 : voilà pourquoi il est important de savoir si une valeur est signée. Dans le convertisseur, activez Signé et choisissez la taille en bits pour voir les deux lectures.
Les fractions binaires
Les chiffres après la virgule binaire valent un demi, un quart, un huitième et ainsi de suite. 0,101 vaut 0,5 + 0,125 = 0,625. Beaucoup de fractions décimales simples ne peuvent pas s'écrire exactement en binaire : 0,1 devient 0,000110011001100... avec 0011 qui se répète à l'infini. C'est la raison pour laquelle 0,1 + 0,2 ne donne pas exactement 0,3 dans la plupart des langages de programmation. Le convertisseur affiche ces chiffres répétés entre crochets, par exemple 0,0(0011).