Histoire et raisonnement

Deux chiffres pour les gouverner tous !

Suite de 0 et de 1 dans un tunnel éclairé par une lumière orangée

En rêve, le code binaire pourrait ressembler à ce tunnel. Image : stock.adobe.com / Photobank

01100010 01101111 01101110 01101010 01101111 01110101 01110010

Qu’est-ce que ce charabia ? Simplement du code binaire, qui sert à représenter l’information du point de vue des ordinateurs. Découvre comment on utilise les 0 et les 1, autrement appelés bits, pour écrire des nombres, du texte et encoder des images !

Aujourd’hui, il y a de l’information partout. Toutes les vidéos, toutes les photos, tous les articles que tu as pu lire – sont de l’information. Et comme toute information, elle doit être communiquée d’une certaine manière.

Par exemple, les êtres humains peuvent parler pour se transmettre de l’information, mais ils ont besoin d’un langage commun, comme le français ou l’allemand par exemple.

Mais quel est le langage des ordinateurs ? Comment font-ils pour se comprendre ? Heureusement, la base de leur langage leur est commune.

Il s’agit du code binaire.
 

Représenter les nombres...

En français, il y a 26 lettres, qu’on assemble en mots et en phrases. En binaire, il n’y a que deux lettres, ou plutôt, deux chiffres – le 0 et le 1, que les ordinateurs vont utiliser pour représenter de l’information, selon des conventions communes, comme nous le faisons avec nos lettres.

Mais donc, comment peut-on écrire des mots à l’aide de 0 et de 1 ??

Avant de savoir écrire, commençons par compter. Un ordinateur a besoin de savoir représenter des nombres avant de savoir représenter des lettres. Cela deviendra bientôt plus clair.

Débutons simplement, comment écrit-on 12 en code binaire ?

La réponse est : 1100

Et maintenant 139 645 289 ?

1000010100101101000101101001

Quelle est donc cette sorcellerie ?

En fait, un ordinateur compte en base 2.
 

Une base, késako ?

Dans notre société, les humains comptent en base 10. C’est-à-dire qu’on utilise dix chiffres différents, de 0 à 9. Quand on arrive à 9, on utilise un 1 et un 0 pour former le 10. De manière similaire, quand on arrive à 19, on passe le 1 à 2 et le 9 à 0, pour avoir le 20. Une fois à 99, on fait apparaitre un 1, comme pour le 10, et on fait passer tous les 9 à 0, on obtient 100. En réalité, on suit un algorithme assez simple.

En partant d’un nombre, si on veut trouver le nombre suivant, on :

  • Regarde le chiffre le plus à droite (1)
    • Si c’est autre chose qu’un 9, on l’augmente de 1. (2)
    • Sinon, on fait passer ce 9 à 0 et on regarde le chiffre à sa gauche (3)
      • S’il n’y en a pas, alors on ajoute un 1 à sa gauche (4)
      • S’il y en a un, alors on répète l’algorithme depuis (2) en prenant en compte ce nouveau chiffre. (5)

Ça a l’air compliqué, mais en réalité tu utilises cela lorsque tu fais des opérations simples à la main, comme des additions ou des soustractions !

 

Un exemple avec le nombre 1219. On veut trouver le nombre suivant - 1220.

On commence par regarder le chiffre le plus à droite (1) : c’est un 9.

On le transforme en 0. (3)

On regarde ensuite à sa gauche et on voit qu’il y a déjà plusieurs chiffres, donc on reprend l’algorithme depuis le début, avec le chiffre à sa gauche, le 1. (5)

On voit que ce n’est pas un 9, alors on l’augmente de 1, et c’est terminé. (2)

Le 9 est devenu 0 et le 1 est devenu 2 : 1219 -> 1220

Vu comme ça, c’est peut-être un peu compliqué pour quelque chose qu’on sait tous faire dans notre tête sans réfléchir… Mais patience.
 

...en base 2 !

Seulement, en base 2, on fait la même chose, mais on utilise seulement le 0 et le 1, en adaptant donc un peu les règles. En particulier, il n’y a pas de 9 donc le 1 jouera ce rôle puisque c’est le plus grand chiffre à notre disposition.

L’algorithme devient donc :

En partant d’un nombre, si on veut trouver le nombre suivant, on :

  • Regarde le chiffre le plus à droite (1)
    • Si c’est autre chose qu’un 1, on l’augmente de 1. (2)
    • Sinon, on fait passer ce 1 à 0 et on regarde le chiffre à sa gauche (3)
      • S’il n’y en a pas, alors on ajoute un 1 à sa gauche (4)
      • S’il y en a un, alors on répète l’algorithme depuis (2) en prenant en compte ce nouveau chiffre. (5)

On commence donc tout naturellement, 0 = 0, 1 = 1. Puis, on voit qu’on n’a pas de chiffres pour représenter le 2, donc en suivant l’algorithme, on en vient à transformer le 1 en 0 et à placer un 1 devant. Ainsi, 2 = 10. En continuant à jouer avec l’algorithme, on observe que 3 = 11, 4 = 100, 5 = 101, etc.

Vérifie avec l’algorithme si tu as besoin.

Maintenant que l’on sait compter en binaire, passons à l’écriture.

Si tu veux connaître des méthodes plus rapides pour convertir n’importe quel nombre en binaire, je t’invite à consulter cette ressource : Comment convertir du décimal en binaire

Représenter des lettres

Nous allons tout simplement attribuer à chaque lettre, et à chaque caractère, un nombre, et utiliser ce nombre pour représenter cette lettre. Il existe plusieurs correspondances entre lettres et nombres, mais la plus commune est l’ASCII (table ci-dessous).

Une table de correspondance entre les nombres en base dix et leurs équivalents après conversion en binaire ou autre.

Table ASCII – La colonne Decimal représente les nombres en base 10 , Binary leur équivalent binaire et Char le charactère correspondant en ASCII. Les colonnes Hexadecimal et Octal indiquent les conversions en base 16 et 8, inutiles ici. Image : Wikimedia Commons, domaine public

Il y a plusieurs caractères étranges mais ne nous en préoccupons pas. En se concentrant sur les lettres de l’alphabet, on peut voir par exemple que le nombre 65 est associé à la lettre A (majuscule), et 103 est associé à la lettre g (minuscule).

En binaire, 65 s’écrit 1000001. On va donc utiliser ce code binaire pour représenter la lettre A.

Les 0 et 1 utilisés pour représenter l’information s’appellent des bits.

En ASCII, le dernier caractère possible est ‘DEL’, avec comme code binaire 1111111. L’ASCII définit 128 caractères numérotés de 0 à 127, sept bits suffisent donc à les coder. Néanmoins les ordinateurs travaillent depuis les années 1970 avec des octets (multiples de huit bits). Afin d’éviter les ambigüités, on rajoute donc des 0 pour les caractères utilisant moins de huit bits, comme pour le A par exemple : 1000001 devient 01000001.

Finalement, pour représenter un mot ou une phrase, il suffit de mettre côte à côte tous ces bits. Pour écrire ‘bonjour’, on va donc avoir :

01100010  01101111  01101110  01101010  01101111  01110101  01110010

Avec :

b = 01100010

o = 01101111

n = 01101110

j = 01101010

o = 01101111

u = 01110101

r = 01110010

 

Nous savons donc maintenant écrire en binaire.

Lorsque tu crées un fichier note.txt avec l’application bloc-notes de ton ordinateur, c’est - à très peu de choses près - la manière dont les lettres sont inscrites du point de vue de l’ordinateur.

Evidemment, il n’y a pas que du texte dans notre monde, mais aussi des photos, vidéos, etc.

Sans rentrer trop dans les détails, tu peux penser intuitivement à une photo comme à une grille de points, chacun d’une couleur différente. Ce sont les pixels.

Dans le cas simple d’une photo en noir et blanc, on peut simplement écrire un 1 pour un pixel blanc, et un 0 pour un pixel noir. Ainsi, on peut ensuite afficher cette image sur notre écran.

Pour les photos en couleurs, c’est un peu plus complexe. Si tu veux en savoir plus, tu peux consulter cet article (un peu plus technique) : Photo numérique : codage d'une image

(Conclusion) Et le reste ?

Tu en sais maintenant un peu plus sur la manière dont les ordinateurs interprètent et transmettent de l’information. Nous n’avons abordé ici que les bases, mais il y a une quasi-infinité de façons de représenter de l’information avec des bits. Pour les images par exemple, il y a beaucoup de formats : BMP, JPEG, PNG, etc.

Il n’est pas nécessaire de tout savoir, mais tu as maintenant de bonnes bases pour appréhender le monde de l’information !

En guise d’examen final, je te propose de traduire le texte suivant, en utilisant la table ASCII que tu connais maintenant si bien 😉.

01000010 01110010 01100001 01110110 01101111 00100001 00100001 00100001

Créé: 03.10.2024
Plus