Il est om­ni­pré­sent en in­for­ma­tique, et peut-être vous en souvenez-vous de vos cours de maths. Le code binaire, réduit à deux états, permet de re­pré­sen­ter les réalités les plus complexes. C’est souvent difficile à com­prendre pour ceux qui ne con­nais­sent 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é­fi­ni­tion 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 au­to­ri­sant chacun des dix chiffres de 0 à 9. Plus le nombre est grand, plus on introduit de positions. Le système binaire fonc­tionne 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é­fi­ni­tion

Code binaire : Un code binaire re­pré­sente des in­for­ma­tions en n’utilisant que deux états dif­fé­rents.

Le système binaire s’utilise prin­ci­pa­le­ment en in­for­ma­tique. Les cal­cu­la­teurs ne fonc­tion­nent qu’avec des uns et des zéros. C’est sous cette forme que s’en­re­gistrent les données et que s’ef­fec­tuent les calculs. Toutefois, cette méthode de calcul et cette re­pré­sen­ta­tion des in­for­ma­tions s’utilise aussi dans d’autres cas. On peut parler de code binaire chaque fois qu’une in­for­ma­tion 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’en­chaî­ne­ment de tels états marche/arrêt permet également de re­pré­sen­ter des in­for­ma­tions beaucoup plus complexes. Le braille, par exemple, le système d’écriture conçu pour les aveugles, a recours au code binaire : les ca­rac­tères y sont cons­ti­tué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’in­for­ma­tique

Même si on a utilisé des codes binaires dès l’Antiquité pour trans­mettre des in­for­ma­tions, le système binaire tel que nous le con­nais­sons a été inventé à la fin du XVIIe siècle par Gottfried Wilhelm Leibniz. Phi­lo­sophe, ma­thé­ma­ti­cien et savant universel, il cherchait une méthode per­met­tant de traduire les concepts lin­guis­tiques de la logique (vrai/faux) en un système ma­thé­ma­tique ; il a utilisé pour cela les uns et les zéros, qui nous sont familiers depuis.

Quelques décennies au­pa­ra­vant, le phi­lo­sophe anglais Francis Bacon s’était déjà demandé comment re­pré­sen­ter un texte au moyen d’un code binaire. Un troisième savant, George Boole, a fi­na­le­ment é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é­ra­teurs logiques et qui est d’une im­por­tance fon­da­men­tale pour l’in­for­ma­tique moderne.

Remarque

In­dé­pen­dam­ment de ces acquis européens dans le domaine du calcul binaire, on trouve des systèmes si­mi­laires, parfois largement an­té­rieurs, dans d’autres régions du monde : ainsi le Yi King, un ouvrage chinois datant du IIImil­lé­naire av. J.‑C., utilise un code binaire, lequel se réfère à la dualité fon­da­men­tale du yin et du yang.

Mais c’est au XXe siècle qu’ap­pa­rais­sent la tech­no­lo­gie numérique et les premières machines à calculer élec­tro­niques. Les pionniers de l’in­for­ma­tique se sont trouvés con­fron­tés au défi de traduire des chiffres et des lettres en un système ex­ploi­table par un or­di­na­teur. Le code binaire était pré­des­tiné à cet effet puisque les 1 et les 0, entités abs­traites, peuvent se traduire sous forme d’états physiques. En élec­tro­tech­nique, 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 trans­mettre des in­for­ma­tions. Dans ce cas, c’est la présence ou l’absence de trou qui permet de re­pré­sen­ter des signes, et de les en­re­gis­trer de manière durable. Elles peuvent être lues par des machines. Leur invention est d’ailleurs bien an­té­rieure à celle des or­di­na­teurs. 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 dif­fé­rence. Un code est la trans­crip­tion de ca­rac­tères con­for­mé­ment à certaines règles. À chaque caractère original cor­res­pond un autre caractère ou une suite de ca­rac­tères. Cela permet d’assurer les con­ver­sions dans les deux sens. Un système, par contre, est une réalité autonome et ne nécessite aucune com­pa­rai­son 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 in­for­ma­tique. On a du codage par exemple dans le code ASCII. Il permet, avec sept positions et deux états (1 et 0), de re­pré­sen­ter toutes les lettres de l’alphabet latin, ainsi que d’autres signes. Comme toutefois il ne permet pas, et de loin, de re­pré­sen­ter les ca­rac­tères de toutes les langues dans le monde, on a créé le code UTF-8, qui dispose d’un à quatre octet(s).

Com­prendre le code binaire : comment un or­di­na­teur calcule-t-il ?

En in­for­ma­tique, 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 con­trac­tant le terme binary digit, chiffre binaire. Un octet (en anglais, byte) est constitué de 8 bits. Les or­di­na­teurs sont d’abord des cal­cu­la­teurs, comme nos simples cal­cu­lettes, qui, pour effectuer des calculs, con­ver­tis­sent les chiffres décimaux con­for­mé­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 re­pré­sente sous la forme 00000101. Les zéros à gauche n’affectent pas la valeur, ils font sim­ple­ment 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 cor­res­pond une puissance. Cette puissance n’est évi­dem­ment 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 re­pré­sen­tant 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’ef­fec­tuent 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 ad­di­tion­nant 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’in­for­ma­tique. Qu’il s’agisse d’or­di­na­teurs in­di­vi­duels, de smart­phones, de tablettes ou de cal­cu­lettes, les appareils nu­mé­riques de notre quotidien sont im­pen­sables sans code binaire.

Aller au menu principal