Arithmétique binaire
Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

L'arithmétique binaire est la manière dont on mène les calculs en base 2 (système binaire).

C'est un concept essentiel de l'informatique. En effet, les processeurs des ordinateurs sont composés de millions de transistors (imprimés sur un circuit électronique) qui chacun ne gère que des bits 0 (" le courant ne passe pas ") et 1 (" le courant passe ").

Un calcul informatique (L´informatique - contraction d´information et automatique - est le domaine d'activité scientifique, technique et industriel en rapport avec le traitement...) n'est donc qu'une suite d'opération sur des paquets de 0 et de 1, appelés octets (constitué de 8 chiffres binaires).

Codage (De façon générale un codage permet de passer d'une représentation des données vers une autre.) binaire

Il existe différents systèmes numériques basés sur la représentation binaire.

Numération de position

Le codage le plus courant est l'équivalent en base deux de la numération de position que nous utilisons quotidiennement en base 10.

Représentation des entiers positifs

Pour trouver la représentation binaire d'un nombre (La notion de nombre en linguistique est traitée à l’article « Nombre grammatical ».), on le décompose en somme de puissances de 2. Par exemple avec le nombre dont la représentation décimale est 59 :

 
 59 = 1×32 + 1×16 + 1×8 + 0×4 + 1×2 + 1×1 
 59 = 1×25 + 1×24 + 1×23 + 0×22 + 1×21 + 1×20 
 59 = 111011 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. Il suffit d'affecter à chaque doigt une valeur binaire (pouvant être représenté par un doigt plié).

Pour Robertv, avec 10 doigts on peut compter jusqu'à 1023. En effet si chaque doigt représente une puissance (Le mot puissance est employé dans plusieurs domaines avec une signification particulière :) de 2 avec la convention doigt levé, alors la puissance de 2 est retenue (1 en binaire); doigt replié, alors la puissance de 2 n'est pas retenue (0 en binaire).

 
 Doigt               Main (La main est l’organe préhensile effecteur situé à l’extrémité de l’avant-bras et relié à ce dernier par le poignet. C'est un...)               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 (D'une manière générale, la mémoire est le stockage de l'information. C'est aussi le souvenir d'une information.)                          2^10  =1 024) 
 

Ceci confirme la formule

 
 2^10-1=1 024-1 
 =1 023 
 

On remarque qu'avec 10 doigts on peut prendre en compte les 10 premières puissances de 2 s'échelonnant de 2^0 à 2^9 c'est-à-dire la somme des 10 premières puissances de 2].

Représentation des entiers négatifs

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é à un 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.

Complément à un

Ce codage, fort simple, consiste à inverser la valeur de chaque bit composant une valeur binaire.

Par exemple, pour obtenir -5 :

 
 0101 valeur décimale 5 
 1010 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é.

Complément à deux

Afin de palier 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 -5:

 
 0101 codage de 5 en binaire 
 1010 complément à un 
 1011 on ajoute 1: représentation de -5 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 (L'addition est une opération élémentaire, permettant notamment de décrire la réunion de quantités ou l'adjonction de grandeurs extensives de même nature, comme les longueurs, les aires, ou les volumes. En...) de -5 et +7 réalisée en complément à deux sur 4 bits :

 
 -5        1011 
 +7        0111 
 __        ____ 
 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.

Code de Gray ou binaire réfléchi

Ce codage permet de ne faire changer qu'un seul bit à la fois quand un nombre est augmenté d'une unité. Le nom du code vient de l'ingénieur (« Le métier de base de l'ingénieur consiste à résoudre des problèmes de nature technologique, concrets et souvent complexes, liés à la conception, à la...) américain Frank Gray qui déposa un brevet sur ce code en 1953.

Codage binaire classique :

 
 0  0000 
 1  0001 
 2  0010 
 3  0011 
 4  0100 
 5  0101 
 6  0110 
 7  0111 
 

Codage Gray ou binaire réfléchi :

 
 0  0000 
 1  0001 
 2  0011 
 3  0010 
 4  0110 
 5  0111 
 6  0101 
 7  0100 
 

Pour passer (Le genre Passer a été créé par le zoologiste français Mathurin Jacques Brisson (1723-1806) en 1760.) d'une ligne à la suivante, on inverse (En mathématiques, l'inverse d'un élément x d'un ensemble muni d'une loi de composition interne · notée multiplicativement, est un élément y tel que x·y = y·x = 1, si 1...) le bit le plus à droite possible conduisant à un nombre nouveau.

Le nom de code binaire réfléchi vient d'une méthode de construction plus pratique pour choisir quel bit inverser quand on passe d'un nombre au suivant:

  • On choisit un code de départ: zéro est codé 0 et un est codé 1.
  • Puis, à chaque fois qu'on a besoin (Les besoins se situent au niveau de l'interaction entre l'individu et l'environnement. Il est souvent fait un classement des besoins humains en trois grandes catégories : les besoins primaires, les besoins...) d'un bit supplémentaire, on symétrise les nombres déjà obtenus (comme une réflexion dans un miroir).
  • Enfin, on rajoute un 0 au début des "anciens" nombres, et un 1 au début des nouveaux nombres.

Exemple :

 
 0 0          0  .0    0  00     0  .00     0  000 
 1 1          1  .1    1  01     1  .01     1  001 
 miroir->------             2  .11     2  011 
 2  .1    2  11     3  .10     3  010 
 3  .0    3  10     ------- 
 4  .10     4  110 
 5  .11     5  111 
 6  .01     6  101 
 7  .00     7  100 
 

Ce code est surtout utilisé pour des capteurs (Un capteur est un dispositif qui transforme l'état d'une grandeur physique observée en une grandeur utilisable, exemple : une tension électrique, une hauteur de...) de positions, par exemple sur des règles optiques. En effet, si on utilise le code binaire standard, lors du passage de la position un (01) à deux (10) -- permutation (En mathématiques, la notion de permutation exprime l'idée de réarrangement d'objets discernables. Une permutation de n objets distincts rangés dans un certain ordre, correspond...) simultanée de 2 bits -- il y a risque de passage transitoire par trois (11) ou zéro (00), ce qu'évite le code de Gray.

On remarquera que le passage du maximum (sept sur 3 bits) à zéro se fait également en ne modifiant qu'un seul bit. Ceci permet par exemple d'encoder un angle (En géométrie, la notion générale d'angle se décline en plusieurs concepts apparentés.), comme la direction d'une girouette (Une girouette (mot provenant du vieux normand wire-wite) est un dispositif généralement métallique, la plupart du temps installé sur un toit, constitué d'un élément rotatif...): 0=Nord, 1=Nord-Est, 2=Est, ... 7=Nord-Ouest. Le passage de Nord-Ouest à Nord se fait également sans problème en ne changeant qu'un seul bit. Voir Roue (La roue est un organe ou pièce mécanique de forme circulaire tournant autour d'un axe passant par son centre.) de codage.

Le décodage des signaux lumineux d'un axe de souris (Le terme souris est un nom vernaculaire ambigu qui peut désigner, pour les francophones, avant tout l’espèce commune Mus musculus, connue aussi comme animal de compagnie ou de laboratoire,...) mécanique (Dans le langage courant, la mécanique est le domaine des machines, moteurs, véhicules, organes (engrenages, poulies, courroies, vilebrequins, arbres de transmission, pistons, ...), bref, de tout ce qui produit ou transmet un...) est un décodage de code de Gray à 2 bits (décodage différentiel (Un différentiel est un système mécanique qui a pour fonction de distribuer une vitesse de rotation de façon adaptative aux besoins d'un ensemble mécanique.) dans ce cas, car ce que l'on veut obtenir n'est pas la valeur décodée mais les transitions ±1 mod 4 de la valeur décodée).

Le code Gray sert également dans les tables de Karnaugh utilisées lors de la conception de circuits logiques.

Décimal codé binaire (" binary coded decimal ", ou BCD)

Ce codage consiste à représenter chacun des chiffres de la numérotation décimale sur 4 bits:

 
 1994 =  0001    1001   1001   0100 
 1×1000 + 9×100 + 9×10 + 4×1 
 

Il présente l'avantage de simplifier la conversion avec la notation décimale.

Avec n bits (n multiple de 4), il est possible de représenter les nombres entre 0 et 10n/4-1. Soit approximativement entre 0 et 1.778n-1. Le BCD est un code redondant, en effet certaines combinaisons ne sont pas utilisées (comme 1111 par exemple).

Cette représentation évite par construction tous les problèmes gênants de cumul d'arrondi (Un arrondi d'un nombre est une valeur approchée de ce nombre obtenue, à partir de son développement décimal, en réduisant le...) qui interviendraient lors de la manipulation de grands nombres dépassant la taille des circuits en arithmétique (L'arithmétique est une branche des mathématiques qui comprend la partie de la théorie des nombres qui utilise des méthodes de la géométrie algébrique et de la théorie des groupes. On l'appelle plus généralement la...) entière et obligent à recourir au flottant. Il est cependant possible de manipuler des nombres à précision arbitraire en utilisant un codage plus efficient que le BCD.

Il existe des variantes du codage BCD:

  • code Aiken où 0, 1, 2, 3, 4 sont codés comme en BCD et 5, 6, 7, 8, 9 sont codés de 1011 à 1111. Il permet d'obtenir le complément à 9 en permutant les 1 et les 0.
  • codage binaire excédent 3 qui consiste à représenter le chiffre (Un chiffre est un symbole utilisé pour représenter les nombres.) à coder + 3.

Applications

Théorie (Le mot théorie vient du mot grec theorein, qui signifie « contempler, observer, examiner ». Dans le langage courant, une théorie est une idée ou une connaissance spéculative, souvent basée sur l’observation ou...) de l'information

En théorie de l'information, on peut utiliser le bit comme unité de mesure (En physique et en métrologie, les unités sont des étalons pour la mesure de grandeurs physiques qui ont besoin de définitions précises pour être utiles....) de l'information. La théorie elle-même est indifférente à la représentation des grandeurs qu'elle utilise.

Logique (La logique (du grec logikê, dérivé de logos (λόγος), terme inventé par Xénocrate signifiant à la fois...)

La logique classique est une logique bivalente: une proposition est soit vraie, soit fausse. Il est donc possible de représenter la vérité d'une proposition par un chiffre binaire. On peut par exemple modéliser les opérations de l'arithmétique binaire (L'arithmétique binaire est la manière dont on mène les calculs en base 2 (système binaire).) à l'aide de l'algèbre (L'algèbre, mot d'origine arabe al-jabr (الجبر), est la branche des mathématiques qui étudie, d'une façon...) de Boole.

L'algèbre de Boole représente un cas très particulier d'usage (L’usage est l'action de se servir de quelque chose.) des probabilités ne faisant intervenir que les seules valeurs de vérité 0 et 1. Voir Théorème de Cox-Jaynes (Le théorème de Cox-Jaynes (1946), dû dans sa version originale au physicien Richard Cox, est une codification des processus d'apprentissage à partir d'un certain ensemble de postulats. Cette codification se trouve coïncider au terme de...).

Informatique

Le binaire est utilisé en informatique car il permet de modéliser le fonctionnement des composants de commutation comme le TTL ou le CMOS. La présence d'un seuil de tension (La tension est une force d'extension.) au bornes des transistors, en négligeant la valeur exacte de cette tension, représentera 0 ou 1. Par exemple le chiffre 0 sera utilisé pour signifier une absence de tension à 0,5V près, et le chiffre 1 pour signifier sa présence à plus de 0,5V. cette marge de tolérance permet de pousser les cadences des microprocesseurs à des valeurs atteignant sans problème (hormis d'échauffement) plusieurs gigahertz. Ne sachant pas techniquement réaliser des composants électroniques à plus de deux états stables (0 ou plus de 0,5V), on n'utilise que la logique (bivalente) et donc le système binaire (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...).

En informatique, la représentation binaire permet de clairement manipuler des bits : chaque chiffre binaire correspond à un bit. La représentation binaire nécessitant l'usage de beaucoup de chiffres (même pour des nombres assez petits), ce qui entraînerait d'importants problèmes de lisibilité et donc de risques d'erreur de transcription pour les programmeurs on lui préfère pour eux une représentation parfois octale ou plus fréquemment hexadécimale. La quasi totalité des microprocesseurs actuels travaillant avec des mots de 8, 16, 32 ou 64 bits, la notation hexadécimale permet de manipuler l'information par paquets de 4 bits (contre 3 pour la notation octale plus populaire du temps (Le temps est un concept développé par l'être humain pour appréhender le changement dans le monde.) des premiers mini-ordinateurs DEC à 12 ou 36 bits).

  • 63 (10) = 111111 (2) = 77 (8) = 3F (16)
  • 64 (10) = 1000000 (2) = 100 (8) = 40 (16)
  • 255 (10) = 11111111 (2) = 377 (8) = FF (16)
  • 256 (10) = 100000000 (2) = 400 (8) = 100 (16)
Page générée en 0.855 seconde(s) - site hébergé chez Amen
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
Ce site est édité par Techno-Science.net - A propos - Informations légales
Partenaire: HD-Numérique