Le système binaire

Par : TutorialsGrey, le 15 Janvier 2022

Dans cet article, nous allons parler du système binaire. Cet article est éssentiel pour ceux quui veulent comprendre comment foctionnent les opérateurs binaires. Donc, si vous avez besoin d'en savoir davantage sur le système binaire, ou simplement de rafraîchir vos connaissances sur ce système, cet article est fait pour vous.

 

Pourquoi utiliser le système binaire ?

Il existe un nombre infini de façons de représenter les nombres. Depuis l'Antiquité, les hommes ont développé différentes notations, comme les chiffres romains et les hiéroglyphes égyptiens. La plupart des civilisations modernes utilisent la notation positionnelle, qui est efficace, flexible et bien adaptée à l'arithmétique.

Une caractéristique notable de tout système positionnel est sa base, qui représente le nombre de chiffres disponibles. Les hommes préfèrent naturellement le système de numération en base 10, également connu sous le nom de système décimal, car il se prête bien au comptage sur les doigts.

Les ordinateurs, en revanche, traitent les données comme un ensemble de chiffres exprimés dans le système numérique en base deux, plus connu sous le nom de système binaire. Ces nombres ne sont composés que de deux chiffres, zéro (0) et un (1).

Remarque : Dans les livres de mathématiques, la base d'un littéral numérique est généralement désignée par un indice qui apparaît légèrement en dessous de la ligne de base, comme par exemple 4210.

Par exemple, le nombre binaire 100111002 est équivalent à 15610 dans le système décimal. Étant donné qu'il y a dix chiffres dans le système décimal (de zéro à neuf), il faut généralement moins de chiffres pour écrire le même nombre en base dix qu'en base deux.

Remarque : Vous ne pouvez pas reconnaître un système numérique en regardant simplement les chiffres d'un nombre donné. Par exemple, le nombre décimal 10110 n'utilise que des chiffres binaires. Mais il représente une valeur complètement différente de son homologue binaire, 1012, qui équivaut à 510.

Le système binaire nécessite plus d'espace de stockage que le système décimal, mais il est beaucoup moins compliqué à mettre en œuvre sur le plan matériel. Bien que vous ayez besoin de plus de blocs de construction, ils sont plus faciles à fabriquer et il en existe moins de types. Cela revient à décomposer votre code en éléments plus modulaires et réutilisables.

Mais surtout, le système binaire est parfait pour les appareils électroniques, qui traduisent les chiffres en différents niveaux de tension. Étant donné que la tension aime dériver vers le haut et vers le bas en raison de divers types de bruits, il faut maintenir une distance suffisante entre les tensions consécutives. Sinon, le signal risque d'être déformé.

En n'utilisant que deux états, vous rendez le système plus fiable et plus résistant au bruit. Par ailleurs, vous pourriez augmenter la tension, mais cela augmenterait également la consommation d'énergie, ce que vous voulez absolument éviter.

 

 

Comment fonctionne le système binaire ?

Imaginez un instant que vous n'ayez que deux doigts pour compter. Vous pourriez compter zéro, un et deux. Mais lorsque vous n'avez plus de doigts, vous devez noter combien de fois vous avez déjà compté jusqu'à deux, puis recommencer jusqu'à ce que vous atteigniez à nouveau deux :

Décimal Doigts Huit Quatre Deux Un Binaire
010 0 0 0 0 02
110 ☝️ 0 0 0 1 12
210 ✌️ 0 0 1 0 102
310 ✌️+☝️ 0 0 1 1 112
410 ✌️✌️ 0 1 0 0 1002
510 ✌️✌️+☝️ 0 1 0 1 1012
610 ✌️✌️+✌️ 0 1 1 0 1102
710 ✌️✌️+✌️+☝️ 0 1 1 1 1112
810 ✌️✌️✌️✌️ 1 0 0 0 10002
910 ✌️✌️✌️✌️+☝️ 1 0 0 1 10012
1010 ✌️✌️✌️✌️+✌️ 1 0 1 0 10102
1110 ✌️✌️✌️✌️+✌️+☝️ 1 0 1 1 10112
1210 ✌️✌️✌️✌️+✌️✌️ 1 1 0 0 11002
1310 ✌️✌️✌️✌️+✌️✌️+☝️ 1 1 0 1 11012
1410 ✌️✌️✌️✌️+✌️✌️+✌️ 1 1 1 0 11102
1510 ✌️✌️✌️✌️+✌️✌️+✌️+☝️ 1 1 1 1 11112

Chaque fois que vous inscrivez une autre paire de doigts, vous devez également les regrouper par puissances de deux, ce qui constitue la base du système. Par exemple, pour compter jusqu'à treize, vous devriez utiliser vos deux doigts six fois, puis utiliser un doigt supplémentaire. Vos doigts pourraient être disposés comme suit : un huit, un quatre et un un.

Ces puissances de deux correspondent aux positions des chiffres dans un nombre binaire et vous indiquent exactement les bits à activer. Elles croissent de droite à gauche, en commençant par le bit le moins significatif ( ou bit de poids faible), qui détermine si le nombre est pair ou impair.

La notation positionnelle est comme le compteur kilométrique d'une voiture : Lorsqu'un chiffre dans une position particulière atteint sa valeur maximale, qui est un dans le système binaire, il passe à zéro et le un est reporté sur la gauche. Cela peut avoir un effet en cascade s'il y a déjà quelques uns à la gauche du chiffre.

 

Comment les ordinateurs utilisent-ils le système binaire ?

Maintenant que vous connaissez les principes de base du système binaire et que vous savez pourquoi les ordinateurs l'utilisent, vous êtes prêt à apprendre comment ils représentent les données avec ce système.

Avant de pouvoir reproduire une information sous forme numérique, il faut la décomposer en chiffres, puis la convertir dans le système binaire. Par exemple, le texte brut peut être considéré comme une chaîne de caractères. Vous pouvez attribuer un nombre arbitraire à chaque caractère ou choisir un codage de caractères existant tel que ASCII, ISO-8859-1 ou UTF-8.

En Python par exemple, les chaînes de caractères sont représentées sous forme de tableaux de code Unicode. Pour révéler leurs valeurs ordinales, utilisez la fonction ord() sur chacun des caractères :

print([ord(character) for character in "€uro"]) ### affiche : [8364, 117, 114, 111]

Les nombres résultants identifient de manière unique les caractères du texte dans l'espace Unicode, mais ils sont présentés sous forme décimale. Vous pouvez les réécrire en utilisant des chiffres binaires :

Caractère Code Décimal Code Binaire
836410 100000101011002
u 11710 11101012
r 11410 11100102
o 11110 11011112

Remarquez que la longueur des bits, qui correspond au nombre de chiffres binaires, varie considérablement d'un caractère à l'autre. Le signe de l'euro () nécessite quatorze bits, tandis que le reste des caractères peut aisément tenir sur sept bits.

Voici comment vous pouvez vérifier la longueur des bits de n'importe quel nombre entier en Python :

print((72).bit_length()) ### affiche : 7

Remarque : Sans les parenthèses autour du nombre, il serait traité comme un nombre à virgule flottante.

Les longueurs de bits variables posent problème. Si vous deviez placer ces nombres binaires les uns à côté des autres sur un disque optique, par exemple, vous obtiendriez un long flux de bits sans limites claires entre les caractères :

100000101011001110101111001011011112

Une façon de savoir comment interpréter ces informations consiste à désigner des modèles de bits de longueur fixe pour tous les caractères. Dans l'informatique moderne, la plus petite unité d'information, appelée octet ou byte, comprend huit bits qui peuvent stocker 256 valeurs distinctes.

Vous pouvez compléter votre code binaire avec des zéro non significatifs (à gauche) pour les exprimer en termes d'octets :

Caractère Code Décimal Code Binaire
836410 00100000 101011002
u 11710 00000000 011101012
r 11410 00000000 011100102
o 11110 00000000 011011112

À présent, chaque caractère est représenté sur deux octets, soit 16 bits. Au total, la taille de votre texte original a presque doublé, mais au moins, il est codé de manière fiable.

Vous pouvez utiliser le codage de Huffman pour trouver des modèles de bits non ambigus pour chaque caractère d'un texte particulier ou utiliser un codage de caractères plus approprié. Par exemple, pour économiser de l'espace, l'UTF-8 favorise intentionnellement les lettres latines par rapport aux symboles que vous avez moins de chances de trouver dans un texte anglais :

print(len("€uro".encode("utf-8"))) ### affiche : 6

Encodé selon la norme UTF-8, le texte entier occupe six octets. L'UTF-8 étant un sur-ensemble de l'ASCII, les lettres u, r et o occupent chacune un octet, tandis que le symbole de l'euro () occupe trois octets dans cet encodage :

for char in "€uro":
    print(char, len(char.encode("utf-8")))

Le code ci-dessus affiche le résultat suivant :

€ 3
u 1
r 1
o 1

D'autres types d'informations peuvent être numérisés de la même manière que le texte. Les images matricielles sont composées de pixels, chaque pixel ayant des canaux qui représentent l'intensité des couleurs sous forme de nombres. Les formes d'ondes sonores contiennent des nombres correspondant à la pression de l'air à un intervalle d'échantillonnage donné. Les modèles tridimensionnels sont construits à partir de formes géométriques définies par leurs sommets, et ainsi de suite.

 

Conclusion

Dans cet article, nous avons parlé du système binaire. Nous avons vu que le système binaire est celui qu'utilisent les ordinateurs pour traiter les données. Nous avons également vu comment fonctionne ce système et comment les ordinateurs l'utilisent pour représenter les données en passant par des systèmes de codage de caractères comme ASCII, ISO-8859-1 ou UTF-8.

En fin de compte, tout est un nombre.