Binaire ↔ Décimal, comment ça marche ?

Mise en projet

Le but de ce chapitre est de se familiariser avec les changements de bases des nombres, et plus particulièrement l'aller-retour entre le binaire et le décimal.

Exposé

Vous avez pu constater dans le chapitre précédent qu'on parle de binaire et de décimal. Comme nous allons beaucoup aborder ces deux modes de représentation des nombres à l'avenir, il serait judicieux d'approfondir le sujet afin que vous y soyez à l'aise.

Du Décimal au Décimal

Non, il n'y a pas d'erreur dans le titre... Nous allons prendre un très gros sac de billes, dont la quantité est totalement indépendante de la façon dont on va en représenter le nombre. Si nous trouvons une méthode pour exprimer son contenu en Décimal (numération de base 10), nous pourrons le faire en binaire (numération de base 2), en octal (numération de base 8), en hexadécimal (numération de base 16),...

Admettons que ce sac contienne 10.859 billes. Comment, quelqu'un qui ne peut compter que jusqu'à 10, pourrait-il manipuler ces billes afin d'arriver à une expression décimale de leur nombre ? C'est ce que nous allons voir tout de suite.

Prenons les billes et faisons-en des paquets de 10. Nous obtenons 1.085 paquets et il va rester 9 billes "sur le carreau", c'est-à-dire 9 unités. Reportons ça dans le tableau ci-dessous.

100.000
105
Rang 6
10.000
104
Rang 5
1.000
103
Rang 4
100
102
Rang 3
10
101
Rang 2
Unités
100
Rang 1
9

Prenons les paquets de 10 billes et faisons-en des paquets de 10. Nous obtenons 108 paquets et il reste 5 paquets de 10 billes.

100.000
105
Rang 6
10.000
104
Rang 5
1.000
103
Rang 4
100
102
Rang 3
10
101
Rang 2
Unités
100
Rang 1
59

Prenons maintenant les paquets de 100 billes et faisons-en des paquets de 10. Nous obtienons 10 paquets de 1.000 billes et il reste 8 paquets de 100 billes.

100.000
105
Rang 6
10.000
104
Rang 5
1.000
103
Rang 4
100
102
Rang 3
10
101
Rang 2
Unités
100
Rang 1
859

Avec les paquets de 1.000 billes, faisons des paquets de 10. Nous pouvons faire un paquet et il ne reste aucun paquet de 1.000 billes. Il faut toutefois mettre un signe dans le tableau pour signaler que ce rang est vide sinon, à la mise en paquets suivante, nous risquon d'avoir un décalage de rang. Ce signe existe, c'est le zéro.

100.000
105
Rang 6
10.000
104
Rang 5
1.000
103
Rang 4
100
102
Rang 3
10
101
Rang 2
Unités
100
Rang 1
0859

Passons au stade supérieur, mais il est impossible de faire encore des paquets de 10, il n'y a plus qu'un seul paquet de 10.000 billes. Reportons cela aussi.

100.000
105
Rang 6
10.000
104
Rang 5
1.000
103
Rang 4
100
102
Rang 3
10
101
Rang 2
Unités
100
Rang 1
10859

Notons au passage que mettre un 0 dans la première colonne à gauche n'a aucun sens, il n'y a pas de rang vide à signaler, ce 0 serait "non significatif".

Du Décimal au Binaire

Avec le principe que nous avons développé ci-dessus, nous pouvons nous tourner vers des numérations en n'importe quelle base. Voyons comment cela se passe avec une personne qui ne saurait compter que jusqu'à 2 et prenons la valeur 15910.
Tiens, pourquoi subitement cet indice "10" ? Quand on aborde plusieurs types de bases, il est nécessaire de mettre en indice la base dans laquelle se trouve le nombre écrit afin d'éviter toute erreur d'interprétation. 10110 ne vaut pas 1012.

Prenons 15910 et réalisons des paquets de 2. Nous en obtenons 79 et il en reste 1. Le tableau devient :

256
28
Rang 9
128
27
Rang 8
64
26
Rang 7
32
25
Rang 6
16
24
Rang 5
8
23
Rang 4
4
22
Rang 3
2
21
Rang 2
Unités
20
Rang 1
1

Réalisons des paquets de 2, nous en obtenons 39 et il reste 1 paquet de 2 à reporter dans le tableau.

256
28
Rang 9
128
27
Rang 8
64
26
Rang 7
32
25
Rang 6
16
24
Rang 5
8
23
Rang 4
4
22
Rang 3
2
21
Rang 2
Unités
20
Rang 1
11

Pour alléger cette page, nous vous proposons de réaliser la suite de l'exercice par vous-même. Vérifiez si vous obtenez bien le résultat ci-dessous.

256
28
Rang 9
128
27
Rang 8
64
26
Rang 7
32
25
Rang 6
16
24
Rang 5
8
23
Rang 4
4
22
Rang 3
2
21
Rang 2
Unités
20
Rang 1
10011111

Attention, l'erreur la plus fréquente est d'oublier le dernier 1 (ici, celui du rang 8). Vous devez bien aller jusqu'au bout du calcul et que votre tout dernier reste soit 0.

Il faut maintenant extraire ce nombre du tableau afin de le recopier correctement sur votre feuille de papier... Par quel bout commencer car il y a des 1 des deux côtés...? Il faut tout simplement que le tout premier reste, qui est le rang 1, se trouve à droite. Ceci donnera :

15910 = 100111112

Du Binaire au Décimal

Dans ce sens, les choses sont un peu plus simples, il suffit d'additionner les valeurs en décimal de toutes les colonnes. Prenons notre résultat ci-dessus et vérifions si nous avons fait du bon travail...

256
28
Rang 9
128
27
Rang 8
64
26
Rang 7
32
25
Rang 6
16
24
Rang 5
8
23
Rang 4
4
22
Rang 3
2
21
Rang 2
Unités
20
Rang 1
Binaire10011111
Décimal12800168421

En additionnant les résultats de la ligne "Décimal" du tableau, nous voyons que nous obtenons bien 15910... cqfd !

Conclusions

Nous voyons que ces transformations d'une base dans une autre ne sont pas bien compliquées, il s'agit essentiellement de faire cela de façon méthodique, ordonnée. Quelques exercices vous permettront de vous aguerrir, de vous exercer dans le domaine.

Pour mémoire, nous avons parlé d'octal et d'hexadécimal ci-dessus... Pourquoi de tels modes de numération ? Pour les raisons suivantes :

  • L'octal (8 valeurs de 0 à 7) permet d'optimiser les transferts sur un faisceau de 3 fils;
  • L'hexadécimal (16 possibilités de 0 à 9 puis de A à E) optimise les transferts sur 4 fils.

Comme ça, vous savez tout (ou presque !!! :O).

En route pour de nouvelles aventures...

Retour