Le système binaire est un système de numération utilisant la base 2. On nomme couramment bit (de l'anglais binary digit, soit « chiffre binaire ») les chiffres de la numération binaire. Ceux-ci ne peuvent prendre que deux valeurs, notées par convention 0 et 1.
C'est un concept essentiel de l'informatique. En effet, les processeurs des ordinateurs sont composés de transistors ne gérant chacun que deux états.
Un calcul informatique n'est donc qu'une suite d'opérations sur des paquets de 0 et de 1, appelés octets lorsqu'ils sont regroupés par 8.
Le codage le plus courant est l'équivalent en base deux de la numération de position que nous utilisons quotidiennement en base 10.
Les premiers nombres s'écrivent :
décimal binaire 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101
(Sachant que les colonnes binaires correspondent respectivement à 8,4,2 et 1)
On passe d'un nombre binaire au suivant en ajoutant 1, comme en décimal, sans oublier les retenues et en utilisant les tables d'additions suivantes:
0+0=0 0+1=1 1+0=1 1+1=10
ainsi:
11 + 1 ==== 100
Détail :
1 + 1 = 10 => on pose 0, et retient 1 1 + 1(retenue) = 10 => on pose 0, et retient 1 0 + 1(retenue) = 1 => 1
L'arithmétique binaire (plus simplement le calcul binaire) est utilisé par les systèmes électroniques les plus courants (calculatrices, ordinateurs, etc.) car le niveau de tension peut servir à représenter les deux chiffres 0 et 1 ; 0 représentant l'état bas et 1 l'état haut.
Tout entier naturel peut s'écrire en binaire, c'est-à-dire qu'il se décompose en somme de puissances de 2 (1, 2, 4, 8, 16, 32, 64, etc.), par exemple 35 se décompose en :
(1 * 25) + (0 * 24) + (0 * 23) + (0 * 22) + (1 * 21) + (1 * 20) = 32 + 2 + 1 = 35
donc le nombre décimal 35 se note 100011 en binaire.
Un nombre décimal à plusieurs chiffres tel que 123 s'exprime ainsi :
1 * 100 + 2 * 10 + 3 * 1 = 1 * 102 + 2 * 101 + 3 * 100
Sa représentation en binaire est 1111011 et s'exprime de la même façon :
1 * 64 + 1 * 32 + 1 * 16 + 1 * 8 + 0 * 4 + 1 * 2 + 1 * 1 = 1 * 26 + 1 * 25 + 1 * 24 + 1 * 23 + 0 * 22 + 1 * 21 + 1 * 20
Pour trouver la représentation binaire d'un nombre, on le décompose en somme de puissances de 2. Par exemple avec le nombre dont la représentation décimale est 42 :
42 = 32 + 8 + 2 42 = 25 + 23 + 21 42 = 1×25 + 0×24 + 1×23 + 0×22 + 1×21 + 0×20 42 = 101010 en binaire
Avec N bits, ce système permet de représenter les nombres entre 0 et 2N-1. Il est donc possible de compter sur ses dix doigts jusqu'à 1023 (210-1) en binaire (à condition de savoir lever chaque doigt indépendamment). Un doigt baissé représente 0, et un doigt levé représente une puissance de 2 correspondant au doigt, par exemple :
Doigt Main Puis. Valeur en de 2 numération décimale Auriculaire de la main droite levé 2^0 1 Annulaire » 2^1 2 Majeur » 2^2 4 Index » 2^3 8 Pouce » 2^4 16 Pouce de la main gauche levé 2^5 32 Index » 2^6 64 Majeur » 2^7 128 Annulaire » 2^8 256 Auriculaire » 2^9 512 ------- Somme =1 023 (Pour mémoire 2^10 =1 024)
Ceci confirme la formule
2n-1=20+21+...+2n-1
Pour compléter la représentation des entiers, il faut pouvoir écrire des entiers négatifs. On ajoute pour cela à la représentation un bit de signe, placé en tête. Un bit de signe nul indique une valeur positive, un bit de signe positionné à 1 est une valeur négative. Cette règle permet de rester cohérent avec le système de représentation des entiers positifs : il suffit d'ajouter un 0 en tête de chaque valeur.
Ce codage, fort simple, consiste à inverser la valeur de chaque bit composant une valeur binaire.
Par exemple, pour obtenir -7 :
0111 valeur décimale 7 1000 complément à un
Le souci avec un tel système est qu'il y a toujours deux représentations de la valeur 0 pour un nombre de bit donné.
Afin de pallier ce défaut, on a introduit la représentation par complément à deux. Celle-ci consiste à réaliser un complément à un de la valeur, puis d'ajouter 1 au résultat.
Par exemple pour obtenir -7:
0111 codage de 7 en binaire 1000 complément à un 1001 on ajoute 1: représentation de -7 en complément à deux
Ce codage a l'avantage de ne pas nécessiter de différenciation spéciale des nombres positifs et négatifs, et évite en particulier le problème d'ordinateurs anciens (Control Data 6600) qui avaient un « +0 » et un « -0 » dont il fallait faire comprendre aux circuits de tests que c'était le même nombre ! Voici une addition de -7 et +9 réalisée en complément à deux sur 4 bits :
-7 1001 +9 1001 __ ____ 2 (1) 0010 (on 'ignore' la retenue)
Avec n bits, ce système permet de représenter les nombres entre -2n-1 et 2n-1-1.
Les bases 8 (octale) et 16 (hexadécimale) sont des bases multiples de la base 2. Ces deux bases ont été couramment employées en informatique et pour des raisons pratiques; ces bases étant fortement liées à la base 2 et les nombres écrits dans ces bases étant plus "manipulables" (car d'écriture plus courte) par l'intellect humain. L'écriture de nombres dans ces bases est facilement obtenue par regroupement de chiffres de l'écriture du nombre en base 2.
On pourrait facilement étendre ce principe à toutes les bases qui sont puissances de 2.
Il suffit de convertir la valeur de chacun des chiffres sous leur forme binaire.
|
|