Le code binaire : pourquoi a-t-on besoin du système binaire ?

Il est omniprésent en informatique, et peut-être vous en souvenez-vous de vos cours de maths. Le code binaire, réduit à deux états, permet de représenter les réalités les plus complexes. C’est souvent difficile à comprendre pour ceux qui ne connaissent pas bien ce système décimal. Pourtant, le code binaire présente des avantages d’une part et, s’impose d’autre part d’un point de vue technique.

Définition du code binaire

La plupart des gens utilisent pour compter et pour calculer le système décimal de position, où les nombres s’expriment par une série de chiffres, chaque position autorisant chacun des dix chiffres de 0 à 9. Plus le nombre est grand, plus on introduit de positions. Le système binaire fonctionne selon le même principe, mais, comme l’indique le préfixe bi-, il n’existe que deux chiffres (ou deux états), le 0 et le 1, marche/arrêt, clair/foncé, vrai/faux. Là encore, plus le chiffre est grand, plus il y a de positions.

Définition

Code binaire : Un code binaire représente des informations en n’utilisant que deux états différents.

Le système binaire s’utilise principalement en informatique. Les calculateurs ne fonctionnent qu’avec des uns et des zéros. C’est sous cette forme que s’enregistrent les données et que s’effectuent les calculs. Toutefois, cette méthode de calcul et cette représentation des informations s’utilise aussi dans d’autres cas. On peut parler de code binaire chaque fois qu’une information nous est transmise sous la forme d’un état parmi deux, comme lorsqu’un voyant éteint (état 1) nous informe qu’un appareil est éteint, et qu’un voyant allumé (état 2) nous informe qu’un appareil est en marche.

Mais l’enchaînement de tels états marche/arrêt permet également de représenter des informations beaucoup plus complexes. Le braille, par exemple, le système d’écriture conçu pour les aveugles, a recours au code binaire : les caractères y sont constitués d’une matrice de 6 points où chaque point peut prendre la forme soit d’un petit relief (1/marche) soit d’un champ plat (0/arrêt).

Histoire du système binaire : de Leibniz à l’informatique

Même si on a utilisé des codes binaires dès l’Antiquité pour transmettre des informations, le système binaire tel que nous le connaissons a été inventé à la fin du XVIIe siècle par Gottfried Wilhelm Leibniz. Philosophe, mathématicien et savant universel, il cherchait une méthode permettant de traduire les concepts linguistiques de la logique (vrai/faux) en un système mathématique ; il a utilisé pour cela les uns et les zéros, qui nous sont familiers depuis.

Quelques décennies auparavant, le philosophe anglais Francis Bacon s’était déjà demandé comment représenter un texte au moyen d’un code binaire. Un troisième savant, George Boole, a finalement élaboré quelque cent-cinquante ans après Leibniz le système binaire de l’algèbre booléenne, un système qui utilise des opérateurs logiques et qui est d’une importance fondamentale pour l’informatique moderne.

Remarque

Indépendamment de ces acquis européens dans le domaine du calcul binaire, on trouve des systèmes similaires, parfois largement antérieurs, dans d’autres régions du monde : ainsi le Yi King, un ouvrage chinois datant du IIImillénaire av. J.‑C., utilise un code binaire, lequel se réfère à la dualité fondamentale du yin et du yang.

Mais c’est au XXe siècle qu’apparaissent la technologie numérique et les premières machines à calculer électroniques. Les pionniers de l’informatique se sont trouvés confrontés au défi de traduire des chiffres et des lettres en un système exploitable par un ordinateur. Le code binaire était prédestiné à cet effet puisque les 1 et les 0, entités abstraites, peuvent se traduire sous forme d’états physiques. En électrotechnique, la présence d’une tension donne 1, l’absence de tension donne 0.

Les cartes perforées utilisent elles aussi un système binaire pour transmettre des informations. Dans ce cas, c’est la présence ou l’absence de trou qui permet de représenter des signes, et de les enregistrer de manière durable. Elles peuvent être lues par des machines. Leur invention est d’ailleurs bien antérieure à celle des ordinateurs. On les utilisait par exemple dans des automates musicaux ou dans des métiers à tisser.

Les termes de code binaire et de système binaire semblent être, au premier abord, synonymes. Toutefois, si on réfléchit à ce qu’est un code, on note une différence. Un code est la transcription de caractères conformément à certaines règles. À chaque caractère original correspond un autre caractère ou une suite de caractères. Cela permet d’assurer les conversions dans les deux sens. Un système, par contre, est une réalité autonome et ne nécessite aucune comparaison avec un autre système. Pour des calculs effectués en binaire, par exemple, on n’a pas besoin de se référer au système décimal pour obtenir des résultats.

On retrouve les deux cas de figure en informatique. On a du codage par exemple dans le code ASCII. Il permet, avec sept positions et deux états (1 et 0), de représenter toutes les lettres de l’alphabet latin, ainsi que d’autres signes. Comme toutefois il ne permet pas, et de loin, de représenter les caractères de toutes les langues dans le monde, on a créé le code UTF-8, qui dispose d’un à quatre octet(s).

Comprendre le code binaire : comment un ordinateur calcule-t-il ?

En informatique, on utilise les unités, que sont les éléments binaires bits et les octets. Un bit est une position dans le code pouvant prendre soit l’état 1 soit l’état 0, le mot étant un mot-valise contractant le terme binary digit, chiffre binaire. Un octet (en anglais, byte) est constitué de 8 bits. Les ordinateurs sont d’abord des calculateurs, comme nos simples calculettes, qui, pour effectuer des calculs, convertissent les chiffres décimaux conformément au système binaire :

0 1 2 3 4 5 6 7 8 9
0 1 10 11 100 101 110 111 1000 1001

Si on pense en termes d’octets, le chiffre décimal 5 se représente sous la forme 00000101. Les zéros à gauche n’affectent pas la valeur, ils font simplement partie du format à huit positions.

Remarque

En code ASCII, le chiffre 9 prend la forme 0111001 et 0 la forme 0110000, et ce du fait de la position des chiffres dans le tableau du code.

Comme dans le système décimal, à chaque position correspond une puissance. Cette puissance n’est évidemment pas exprimée en base 10 comme nous en avons l’habitude, mais dans la base 2 du système binaire, avec 20 pour la première position, 21 pour la deuxième position, 22 pour la troisième position, etc. : un octet représentant le nombre décimal 23, par exemple, se lit donc de la façon suivante :

27

26

25

24

23

22

21

20

0

0

0

1

0

1

1

1

soit, en décimal : 24 + 22 + 21 + 20 = 16 + 4 + 2 + 1 = 23.

Dans le système binaire, les calculs s’effectuent comme dans le système décimal. Ainsi, l’addition 1100 + 1010 donne 10110. En posant le calcul comme on le fait à l’école et en additionnant de droite à gauche, on a :

  • 0 + 0 = 0
  • 0 + 1 = 1
  • 1 + 0 = 1
  • 1 + 1 = 0 avec la retenue 1.
En résumé

Cette forme de calcul constitue la base même de l’informatique. Qu’il s’agisse d’ordinateurs individuels, de smartphones, de tablettes ou de calculettes, les appareils numériques de notre quotidien sont impensables sans code binaire.