Comprendre les nombres binaires

compteur de vitesse Citroën CX

Connaissez-vous la blague qui dit que dans le monde il y a 10 sortes de personnes, ceux qui comprennent le binaire et les autres. Hum vous ne comprenez pas ce qu'il y a de drôle? C'est que vous êtes au bon endroit!

Compteur / comparateur binaire et décimal

On a parfois du mal à se représenter ce que c'est qu'un nombre binaire par rapport à un nombre décimal. Comment peut-on compter avec seulement des zéros et des uns? Afin de se faire une meilleur idée et de pouvoir comparer visuellement un nombre binaire et un nombre décimal j'ai imaginé ce petit compteur/comparateur.

Le groupe de cylindres du haut représente les décimaux. Chaque cylindre est numéroté de 0 à 9 et quand le premier (à droite) termine son cycle et passe de 9 à 0, le second passe de 0 à 1 et le tout affiche le nombre 10 en base 10. Ça vous connaissez!

Le groupe de cylindres du bas représente les binaires, la mécanique reste la même mais les cylindres ne sont numérotés que de 0 à 1 et, comme dans le premier groupe, quand le premier cylindre (à droite) termine son cycle, le second passe de 0 à 1 et l'ensemble affiche 10 mais un 10 en base 2 et là c'est déjà un peu perturbant.

Cette petite animation que je vous invite à utiliser est là pour vous aider à comprendre la différence entre les nombres binaires et les nombres décimaux, allez y mettez sur pause, relancez la, vous allez voir votre cerveau va imprégner.

Vous avez compris? J'espère au moins que les choses sont plus claires à présent. Dans notre quotidien nous comptons en base 10 car nous n'utilisons que des nombres de 0 à 9. Le binaire est donc une base 2 (0 et 1). On pourrait ajouter un groupe de cylindres supplémentaire à notre comparateur et calculer sur d'autres bases, en base 16 par exemple (hexadécimal) qui compte 16 caractères (les nombres de 0 à 9 et les lettres de A à F) et qui est encore largement utilisée aujourd'hui dans différents domaines de l'informatique.

Vous comprenez maintenant pourquoi dans le monde il y a 10 sortes de personnes, ceux qui comprennent le binaire et les autres.

Convertir un nombre décimal en nombre binaire

Maintenant que vous avez compris comment on compte en binaire, j'aimerais vous apprendre à convertir un nombre décimal en nombre binaire à la main, oui à l'ancienne avec un papier et un crayon, vous allez voir c'est super simple.

Prenons par exemple le nombre 105, écrivez le sur un papier et tirez un trait vertical après lui pour le séparer du nombre binaire que nous allons calculer. Si le nombre que nous souhaitons convertir est paire on inscrit 0 à droite du trait vertical sinon, s'il est impaire on inscrit 1. Dans notre cas nous devrions obtenir 105 | 1. Maintenant 105 moins 1 donne 104 qui est divisible par 2, on obtient 52, on inscrit alors ce résultat en dessous de 105 et comme il est pair on inscrit 0 après le trait vertical. On répète alors l'opération jusqu'à ce que l'on ne puisse plus diviser. une fois terminez vous obtenez quelque chose qui devrait ressembler à ça:

105 | 1
 52 | 0          (105 - 1 = 104 / 2 = 52)
 26 | 0          ( 52 - 0 =  52 / 2 = 26)
 13 | 1          ( 26 - 0 =  26 / 2 = 13)
  6 | 0          ( 13 - 1 =  12 / 2 =  6)
  3 | 1          (  6 - 0 =   6 / 2 =  3)
  1 | 1          (  3 - 1 =   2 / 2 =  1)

Le résultat en binaire se lit de bas en haut et donne 1101001, vous pouvez vérifier 1101001 en binaire équivaut bien à 105 en décimal.

Convertir un nombre binaire en nombre décimal

S'il y a bien un calcul plus simple que de convertir un nombre décimal en nombre binaire, c'est de faire l’inverse et de convertir un nombre binaire en nombre décimal.

Avant d'entrer dans le vif je voudrais commencer par vous rappeler une évidence mathématique qu'il est utile de garder à l'esprit pour les explications qui vont suivre.

Que l'on écrive le nombre mille trois cent trente sept comme ça,
1000x1 + 100x3 + 10x3 + 1x7 ou comme ça, 103x1 + 102x3 + 101x*3 + 100x7
c'est exactement pareil et ça vaudra toujours 1337.

Méthode 1

Ceci étant dit reprenons le nombre binaire que nous venons de calculer (1101001). Nous allons reproduire le même calcule qu'avec le nombre 1337 ci-dessus mais cette fois-ci avec une base 2. Commençons par le faire correspondre avec des nombres décimaux croissants en commençant par le plus petit bit:

|  1 |  1 |  0 | 1 | 0 | 0 | 1 |
|  6 |  5 |  4 | 3 | 2 | 1 | 0 |

Si le bit vaut 1 alors on calcule (on est en base 2 ne l'oublions pas) 2 à la puissance du nombre décimal correspondante x 1 et si le bit vaut 0 alors on calcule (ou pas) 2 à la puissance du nombre décimal correspondante x 0, comme ceci:

26x1 + 25x1 + 24x0 + 23x1 + 22x0 + 21x0 + 20x1 qui est équivalent à 64 + 32 + 0 + 8 + 0 + 0 + 1 = 105

Méthode 2

On peut faire le même calcule de manière un peu différente. Pour cela il suffit d'associer chaque bit en partant du plus petit à une valeur de 2n où n = successivement 0,1,2,3,... Comme ça:
20, 21, 22, 23, 24, 25, 26, 27 (sois 1, 2, 4, 8, 16, 32, 64, 128)

Pour un nombre sur 8 bits cela donne:

| bit8 | bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 |
|  128 |   64 |   32 |   16 |    8 |    4 |    2 |    1 |

Il suffit ensuite d'additionner toutes les valeurs dont le bit vaut 1. Avec le nombre que nous avons utilisé ci-dessus 1101001 dont nous savons qu'il vaut 105 cela donne:

|  1 |  1 |  0 | 1 | 0 | 0 | 1 |
| 64 | 32 | 16 | 8 | 4 | 2 | 1 |

64 + 32 + 8 + 1 = 105

Et voila, les nombres binaires n'ont plus de secret pour vous!

27-Oct-2023
^