Comprendre le code binaire : comment ça marche ?

code binaire

Le code binaire est partout autour de nous, bien qu’invisible à l’œil nu. Des ordinateurs aux smartphones en passant par les objets connectés, tous ces appareils électroniques utilisent ce langage fait de 0 et de 1 pour fonctionner. Mais qu’est-ce que le code binaire exactement ? Comment fonctionne-t-il et pourquoi est-il si fondamental en informatique ? Dans cet article, nous vous proposons de décoder pas à pas les secrets du binaire pour enfin comprendre comment il régit le monde numérique qui nous entoure. Alors, prêts à plonger dans les profondeurs des bits et des octets ?

En bref

Le code binaire est le langage de base utilisé par tous les systèmes informatiques. Il est composé uniquement de deux chiffres : le 0 et le 1. Grâce à de savantes combinaisons de ces deux symboles, il est possible de représenter toutes sortes de données, des nombres aux textes en passant par les images et les sons.

Le code binaire, c’est quoi ?

Le code binaire, aussi appelé système binaire, est une manière de représenter des informations en utilisant seulement deux états distincts : généralement notés 0 et 1. C’est un système de numération de position, comme notre système décimal habituel, mais qui utilise une base 2 au lieu de 10. Chaque chiffre d’un nombre binaire est appelé un bit (binary digit).

Ce code minimaliste est utilisé par tous les appareils électroniques numériques car il est facile à implémenter physiquement : un bit peut être matérialisé par la présence ou l’absence de courant dans un circuit, par une tension basse ou haute, par un interrupteur ouvert ou fermé, un trou ou une bosse sur un CD… Les domaines d’application du binaire sont donc très vastes : informatique bien sûr, mais aussi télécommunications, robotique, électronique digitale, etc.

Mais comment un système aussi rudimentaire en apparence peut-il servir à représenter toute la complexité des données manipulées par nos ordinateurs ? La réponse tient en un mot : la combinatoire. En alignant suffisamment de bits les uns à la suite des autres, on peut générer un très grand nombre de combinaisons différentes et donc coder une large palette d’informations. C’est un peu comme les deux états d’un interrupteur qui, multipliés sur un grand nombre d’interrupteurs, permettent un codage très riche.

Les bases du système binaire

En binaire, chaque bit a un « poids » qui dépend de sa position. Comme dans le système décimal, les bits les plus à droite correspondent aux unités, ceux immédiatement à gauche aux « dizaines », puis aux « centaines », etc. Sauf qu’en base 2, les poids ne sont pas 1, 10, 100 mais des puissances de 2 successives :

  • Le bit le plus à droite a un poids de 2^0=1
  • Son voisin de gauche pèse 2^1=2
  • Puis on a 2^2=4, 2^3=8, 2^4=16, 2^5=32, 2^6=64, 2^7=128, etc.

Petit moyen mnémotechnique : les puissances de 2 successives se calculent facilement en doublant la précédente.

Voici un tableau récapitulatif des puissances de 2 jusqu’à 2^7, ce qui correspond à 8 bits soit un octet :

Puissance de 2Valeur décimale
2^01
2^12
2^24
2^38
2^416
2^532
2^664
2^7128

Chaque bit, selon qu’il est à l’état 0 ou 1, contribue ou non à la valeur totale du nombre binaire. Par exemple, 10110010 (qui est écrit ici sur 8 bits) vaut en décimal :

1×2^7 + 0x2^6 + 1×2^5 + 1×2^4 + 0x2^3 + 0x2^2 + 1×2^1 + 0x2^0 = 128+0+32+16+0+0+2+0 = 178

On voit que seuls les bits à 1 contribuent à la somme finale, en apportant la valeur de leur « poids », c’est-à-dire la puissance de 2 correspondant à leur position. Les bits à 0 ont une contribution nulle.

Lire et écrire en binaire

Lire un nombre binaire, c’est donc faire la somme des puissances de 2 correspondant aux bits à 1, comme dans l’exemple précédent. Quelques exemples supplémentaires :

  • 100101 = 1×2^5 + 0x2^4 + 0x2^3 + 1×2^2 + 0x2^1 + 1×2^0 = 32+0+0+4+0+1 = 37
  • 11111111 = 1×2^7 + 1×2^6 + 1×2^5 + 1×2^4 + 1×2^3 + 1×2^2 + 1×2^1 + 1×2^0 = 128+64+32+16+8+4+2+1 = 255
  • 1101 = 1×2^3 + 1×2^2 + 0x2^1 + 1×2^0 = 8+4+0+1 = 13

Écrire un nombre décimal en binaire est un peu plus complexe et se fait en plusieurs étapes. Prenons l’exemple du nombre 77 :

  1. On divise 77 par 2. Le quotient est 38 et le reste est 1. On note le reste.
  2. On divise 38 par 2. Quotient 19, reste 0. On note le reste.
  3. On divise 19 par 2. Quotient 9, reste 1. On note le reste.
  4. On divise 9 par 2. Quotient 4, reste 1. On note le reste.
  5. On divise 4 par 2. Quotient 2, reste 0. On note le reste.
  6. On divise 2 par 2. Quotient 1, reste 0. On note le reste.
  7. On divise 1 par 2. Quotient 0, reste 1. On note le reste et on s’arrête car le quotient est nul.

Le nombre binaire s’obtient en lisant les restes de bas en haut. Ici : 77 = 1001101 en binaire.

Les caractères ASCII en binaire

Le code ASCII (American Standard Code for Information Interchange) est une norme de codage des caractères couramment utilisés (lettres, chiffres, ponctuation…) sous forme de nombres. Comme les ordinateurs ne manipulent que des nombres binaires, cela permet de représenter du texte de façon standardisée.

Chaque caractère est codé sur 7 bits, ce qui permet de représenter 128 caractères différents (2^7=128). Voici un extrait de la table ASCII avec quelques caractères courants :

CaractèreCode ASCII décimalCode ASCII binaire
A651000001
B661000010
a971100001
b981100010
0480110000
1490110001
@641000000
!330100001

Ainsi, pour un ordinateur, le mot « Bonjour » sera en fait la suite de nombres binaires 1000010 1101111 1101110 1101010 1101111 1110101 1110010.

Le binaire au cœur des ordinateurs

Mais pourquoi diable les ordinateurs utilisent-ils ce code binaire plutôt que notre bon vieux système décimal ? Pour le comprendre, il faut se pencher sur leur fonctionnement interne, tant matériel que logiciel.

Au niveau matériel, un ordinateur est essentiellement composé de circuits électroniques réalisant des opérations logiques et arithmétiques. Le composant de base est le transistor, qui fonctionne comme un interrupteur miniature pouvant être soit passant, soit bloqué. Un transistor passant laisse passer le courant et représente un 1 logique. Bloqué, il empêche le passage du courant et représente un 0. Avec des milliers voire des millions de ces transistors, on peut construire des circuits réalisant toutes sortes d’opérations sur les bits : portes logiques ET, OU, NON, additions, soustractions, etc.

Au niveau logiciel, les processeurs des ordinateurs sont optimisés pour traiter des instructions codées en binaire. Chaque type d’instruction (addition, copie de données, saut conditionnel…) est représenté par une suite de bits spécifique, directement « compréhensible » par le processeur. Les langages de programmation de haut niveau comme Python ou Java sont d’abord traduits en langage machine binaire avant de pouvoir être exécutés.

Le binaire est donc le dénominateur commun entre matériel et logiciel, le « langage » qui permet aux deux de communiquer. Son utilisation est un choix pragmatique : il est parfaitement adapté à l’électronique numérique et permet une implémentation simple et efficace des opérations logiques et arithmétiques de base. Sa relative « simplicité » est aussi un atout : un système à deux états est plus facile à fabriquer de façon fiable qu’un système à dix états.

Exercices de conversion binaire-décimal

Après toute cette théorie, place à un peu de pratique ! Voici quelques exercices pour vous entraîner à jongler entre binaire et décimal. N’hésitez pas à vous aider d’une calculatrice ou d’un convertisseur en ligne pour vérifier vos réponses.

  1. Convertir en décimal les nombres binaires suivants :
    • a) 1001
    • b) 11010111
    • c) 100101101
  2. Convertir en binaire (sur 8 bits) les nombres décimaux suivants :
    • a) 7
    • b) 123
    • c) 213

Corrections :

  • a) 1001 = 9
  • b) 11010111 = 215
  • c) 100101101 = 301

Pour aller plus loin

Cet article vous a donné un aperçu des bases du code binaire, mais il y a encore beaucoup à découvrir sur le sujet. Si vous souhaitez approfondir vos connaissances, voici quelques ressources intéressantes :

  • Le cours en ligne gratuit « Représentation binaire de l’information » sur le site OpenClassrooms, qui aborde en détail les différentes utilisations du binaire en informatique (entiers signés, flottants, caractères, images…).
  • Le livre « Code: The Hidden Language of Computer Hardware and Software » de Charles Petzold, qui explique de façon très pédagogique et progressive comment les ordinateurs fonctionnent, en partant des principes de base de l’électronique jusqu’aux langages de programmation.
  • La chaine YouTube « Computerphile », qui propose de nombreuses vidéos de vulgarisation sur des sujets d’informatique, dont plusieurs sur la représentation binaire des données.

Comments

No comments yet. Why don’t you start the discussion?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *