logo

Système binaire


Système binaire : encyclopédie mathématiques

wikipediaCet article est issu de l'encyclopédie libre Wikipedia.
Vous pouvez consulter l'article ici ainsi que son historique.
Les textes et les images sont disponibles sous les termes de la Licence de documentation libre GNU.
Page d'aide sur l'homonymie Pour les articles homonymes, voir Binaire.
Exemple d'informations binaires

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 positionnelle. 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 huit.

Sommaire

[modifier] En notation positionnelle

Le système binaire le plus courant est l'équivalent en base deux de la numération de position que nous utilisons en base dix dans la vie courante.

Dans ce type de codage, chaque nombre est reprĂ©sentĂ© de façon unique par une suite ordonnĂ©e de chiffres. Et chaque chiffre reprĂ©sente une puissance de la base. Si on se limite dans un premier temps aux nombres entiers positifs, en base dix ces puissances sont : un (1), dix (reprĂ©sentĂ© par 10), cent (dix fois dix, reprĂ©sentĂ© par 100), mille (dix fois cent, reprĂ©sentĂ© par 1000), dix mille etc. En base deux, ces puissances sont : un (1), deux (reprĂ©sentĂ© lui aussi par 10), quatre (deux fois deux, reprĂ©sentĂ© par 100), huit (deux fois quatre, reprĂ©sentĂ© par 1000), seize (deux fois huit, reprĂ©sentĂ© par 10000) etc.

On voit que la signification des reprĂ©sentations 10, 100, 1000, etc. dĂ©pend de la base utilisĂ©e : 10 est toujours Ă©gale Ă  la base, c'est-Ă -dire dix en base dix, mais deux en base deux[1]

En base dix, on a besoin de dix chiffres, de zĂ©ro Ă  neuf ; en base n, on a besoin de n chiffres, de zĂ©ro Ă  n-1 ; et donc en base deux, on a besoin de deux chiffres : zĂ©ro et un.

Un nombre qui s'exprime en base B par les quatre chiffres 1101 s'analyse :
1 * B3 + 1 * B2 + 0 * B1 + 1 * B0, qui donne :

1101 en base B = 10 : 1 * 103 + 1 * 102 + 0 * 101 + 1 * 100 = 1101
1101 en base B = 8 : 1 * 83 + 1 * 82 + 0 * 81 + 1 * 80 = 577
1101 en base B = 2 : 1 * 23 + 1 * 22 + 0 * 21 + 1 * 20 = 13

[modifier] Énumération des premiers nombres

Les premiers nombres, et chiffres de la base de numĂ©ration 10, s'Ă©crivent :

décimal binaire commentaire
0 0 zéro
1 1 un = base puissance zéro (valable pour toutes les bases, donc deux et dix)
2 10 deux = deux puissance un (un zéro derrière le 1)
3 11
4 100 quatre = deux puissance deux (deux zéro derrière le 1)
5 101
6 110
7 111
8 1000 huit = deux puissance trois (trois zéro derrière le 1)
9 1001

[modifier] Opérations

Les techniques des quatre opérations de base (addition, soustraction, multiplication et division) restent exactement les mêmes qu'en notation décimale, elles sont juste simplifiées de façon drastique parce qu'il n'y a que deux chiffres (zéro et un). Pour la multiplication par exemple, quelle que soit la base la multiplication par 10 (c’est-à-dire par la base elle-même) [2] se fait en ajoutant un zéro à droite.

Seules changent d'une part la forme de la suite de chiffres qui exprime le résultat (elle ne compte que des zéros et un), d'autre par la signification de cette suite (10 signifie "deux" et non "dix", 100 se lit "quatre" et non "cent", etc.).

exemples : additions, soustractions

On passe d'un nombre binaire au suivant en ajoutant 1, comme en dĂ©cimal, sans oublier les retenues et en utilisant la table ordinaire (mais rĂ©duite Ă  sa plus simple expression) :

 0+0=0    0+1=1    1+0=1   1+1=0 avec 1 retenue
 0-0=0    0-1=1 avec 1 retenue   1-0=1   1-1=0

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

[modifier] Théorie informatique

L'arithmĂ©tique binaire (plus simplement le calcul binaire) est utilisĂ© par les systèmes Ă©lectroniques les plus courants (calculatrices, ordinateurs, etc.) car les deux chiffres 0 et 1 s'y traduisent facilement par la tension ou le passage d'un courant : 0 reprĂ©sentant l'Ă©tat bas (tension ou courant nul) et 1 l'Ă©tat haut (tension qui existe, courant qui passe).

[modifier] Représentation des entiers négatifs

Pour compléter la représentation des entiers, il faut pouvoir écrire des entiers négatifs. La façon informatique de le faire est prévoir un bit de signe, placé en tête. Un bit de signe nul indique une valeur positive, un bit de signe positionné à 1 indique une valeur négative.

Les informaticiens utilisent deux représentations.

[modifier] Complément à un

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

Dans ce système, la valeur 0 a deux reprĂ©sentations : « +0 Â» et « -0 Â» (dans notre exemple : 0000 et 1111), ce qui oblige Ă  rĂ©aliser 2 tests pour tester la valeur nulle d'un rĂ©sultat.

Article dĂ©taillĂ© : ComplĂ©ment Ă  un.

[modifier] Complément à deux

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

Le zéro est représenté seulement par 0000

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.

Article dĂ©taillĂ© : ComplĂ©ment Ă  deux.

[modifier] Entre les bases 2, 8 et 16

[modifier] Du binaire vers octal ou hexadécimal

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.

  • Octal : base 8 avec 8 = 23. Il suffit de parcourir le nombre binaire de la droite vers la gauche en regroupant les chiffres binaires par 3 par 3 : chaque paquet de 3 (le dernier devant ĂŞtre parfois complĂ©tĂ© par des 0 Ă  gauche) est l'Ă©criture binaire d'un chiffre en base 8 (08=000, 18=001, 28=010, 38=011, 48=100, 58=101, 68=110, 78=111).
  • 101011011102 va s'Ă©crire 10 101 101 110 et en convertissant la valeur de chacun des blocs en un chiffre octal, on obtient le nombre octal 25568.
  • HexadĂ©cimal : base 16 avec 16 = 24. Il suffit de parcourir le nombre binaire de la droite vers la gauche en regroupant les chiffres binaires par 4 par 4 : chaque paquet de 4 bits est la reprĂ©sentation binaire d'un chiffre en base 16. En base 16, il faut 16 symboles et conventionnellement, on utilise les 10 chiffres dĂ©cimaux suivis des 6 premiers caractères de l'alphabet selon la règle suivante: A16=1010=10102, B16=1110=10112, C16=1210=11002, D16=1310=11012, E16=1410=11102 et F16=1510=11112.
  • 101011011102 va s'Ă©crire 101 0110 1110 et en convertissant la valeur de chacun des blocs en dĂ©cimal on obtient : 5, 6, 14 c'est-Ă -dire 56E16.

On pourrait facilement étendre ce principe à toutes les bases qui sont puissances de 2.

[modifier] Vers le binaire

Il suffit de convertir la valeur de chacun des chiffres sous leur forme binaire.

  • 1A2F16 va s'Ă©crire 1, 10=8+2, 2, 15=8+4+2+1 soit 1 1010 0010 11112
  • 1568 va s'Ă©crire 1, 5=4+1, 6=4+2 soit 1 101 1102

[modifier] Table des valeurs des groupements de chiffres binaires

Binaire Décimal Octal Hexadécimal
0000 0 0 0
0001 1 1 1
0010 2 2 2
0011 3 3 3
0100 4 4 4
0101 5 5 5
0110 6 6 6
0111 7 7 7
Binaire Décimal Octal Hexadécimal
1000 8 10 8
1001 9 11 9
1010 10 12 A
1011 11 13 B
1100 12 14 C
1101 13 15 D
1110 14 16 E
1111 15 17 F

[modifier] Code de Gray ou binaire réfléchi

Article dĂ©taillĂ© : code de Gray.

Ce codage permet de ne faire changer qu'un seul bit à la fois quand un nombre est incrémenté ou décrémenté d'une unité.

Le code de Gray, également appelé binaire réfléchi, permet de ne faire changer qu'un seul bit à la fois quand un nombre est incrémenté ou décrémenté d'une unité. Le nom du code vient de l'ingénieur américain Frank Gray qui déposa un brevet sur ce code en 1947[3]. Monsieur Louis Gros publia, à Lyon, en 1872 un opuscule, Théorie du Baguenaudier, par un clerc de notaire lyonnais où ce code était présenté pour la première fois en lien avec un casse-tête[4]. Monsieur Gros fut clerc de notaire puis Conseiller à la Cour d'Appel de Lyon.

codage binaire classique Codage Gray ou binaire réfléchi
0 0000 0 0000
1 0001 1 0001
2 0010 2 0011
3 0011 3 0010
4 0100 4 0110
5 0101 5 0111
6 0110 6 0101
7 0111 7 0100

Pour "calculer" directement le code de Gray d'un entier Ă  partir de celui de son prĂ©dĂ©cesseur on peut procĂ©der ainsi :

- lorsqu'il y a un nombre pair de 1 on inverse le dernier bit

- lorsqu'il y a un nombre impair de 1 on inverse le bit directement Ă  gauche du 1 le plus Ă  droite.

Le code de Gray est utilisé entre autres sur une roue codeuse.

[modifier] DĂ©cimal codĂ© binaire (« binary coded decimal Â», ou BCD)

Afin de concilier la logique binaire de l'ordinateur avec la logique humaine, on peut convertir en binaire, plutĂ´t que les nombres eux-mĂŞmes, chacun des chiffres qui les composent en notation dĂ©cimale positionnelle. Chacun de ces chiffres est alors codĂ© 4 bits :

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

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 qui interviendraient lors de la manipulation de grands nombres dépassant la taille des circuits en arithmétique entière et obligent à recourir au flottant. Il est cependant possible de manipuler des nombres à précision arbitraire en utilisant un codage plus efficace 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Ă©dant 3 qui consiste Ă  reprĂ©senter le chiffre Ă  coder + 3.
Article dĂ©taillĂ© : Binary coded decimal.

[modifier] Applications

[modifier] Théorie de l'information

Article dĂ©taillĂ© : Entropie de Shannon.

En théorie de l'information, l'entropie d'une source d'information est exprimée en bits. La théorie elle-même est indifférente à la représentation des grandeurs qu'elle utilise.

[modifier] Logique

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'aide de l'algèbre de Boole.

L'algèbre de Boole représente un cas très particulier d'usage des probabilités ne faisant intervenir que les seules valeurs de vérité 0 et 1. Voir Théorème de Cox-Jaynes.

[modifier] 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 aux 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.

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 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)

[modifier] Histoire

  • 3000 av J.C. : traitĂ© du Yi King sous l'empereur Fou-Hi[5]
  • 1650 av J.C. : multiplication Ă©gyptienne
  • 1600 : Table de Thomas Harriot (1560-1621), première expression du binaire connue en France
  • 1605 : Francis Bacon utilise un code secret bilitaire (Ă  deux lettres) pour protĂ©ger ses messages (il remplace les lettres du message par leur position en binaire, puis les 0 et les 1 par des A et des B. Exemple : lettre E → 5 → 00101 → codĂ©e AABAB
  • 1617 : Neper, dans son traitĂ© Rhabdologie, montre comment effectuer simplement les opĂ©rations sur des nombres binaires.
  • 1670 : Juan Caramuel y Lobkowitz fait la première Ă©tude raisonnĂ©e sur les numĂ©rations non dĂ©cimales.
  • 1677 : Leibniz Ă©tudie le binaire comme mode de calcul des fractions dĂ©cimales, De progresso dyadica est publiĂ© en 1679.
  • 1688 : la Chine s'empare des idĂ©es de Leibniz et redĂ©couvre des travaux chinois datant de trois mille ans avant J.-C.
  • 1703 : Leibniz publie son exposĂ© sur le système binaire devant l'AcadĂ©mie des sciences de Paris dans les MĂ©moires
  • 1847 : George Boole publie les premiers travaux de son Algèbre de Boole.

[modifier] Notes et références

  1. ↑ D'oĂą la blague d'informaticiens : « Il n'y a que 10 sortes de personnes : celles qui comprennent le binaire et celles qui ne le comprennent pas.»
  2. ↑ attention, 10 et non dix ; en base deux 10 vaut deux
  3. ↑ (en) Frank Gray pour Bell Labs, Brevet U.S. 2,632,058 : Pulse code communication, déposé le 13 novembre 1947, publié le 17 mars 1953, sur le site de l'USPTO.
  4. ↑ (fr) L'Arithmétique amusante, Edouard Lucas, Adegi Graphics LLC
  5. ↑ Robert Ligonnière, p.199 (1987)

[modifier] Voir aussi

Sur les autres projets Wikimedia :

[modifier] Articles connexes

  • Format des donnĂ©es
  • PrĂ©fixe binaire
  • Virgule flottante
  • Système bibi-binaire de Boby Lapointe
  • Algèbre de Boole
  • Nombre nĂ©gatif
  • ComplĂ©ment Ă  1
  • ComplĂ©ment Ă  2
  • Auguste De Morgan
  • Entier en prĂ©cision multiple

[modifier] Liens externes

[modifier] Bibliographie

  • Robert Ligonnière, PrĂ©histoire et histoire des ordinateurs, Paris, Robert Laffont, 1987 (ISBN 2-221-05261-7) 





[modifier] Ă  recycler

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 trente cinq se dĂ©compose en :

(1 * 25) + (0 * 24) + (0 * 23) + (0 * 22) + (1 * 21) + (1 * 20) = trentedeux + deux + un donc le nombre décimal 35 se note 100011 en binaire.

[modifier] Représentation des entiers positifs

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. De la même façon, en disposant d'un ensemble de N objets distincts et distinguables les uns des autres, on pourrait donc compter de 0 à 2N-1 en choisissant un sous-ensemble approprié.

Exemple 1 :
Les dix doigts de la main, paumes opposées à soi

Doigt                  Main            Puis. Valeur en
                                       de 2  numération
                                             décimale
Auriculaire   de la main droite        2^0        1
Annulaire                »             2^1        2
Majeur                   »             2^2        4
Index                    »             2^3        8
Pouce                    »             2^4       16
Pouce         de la main gauche        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

Exemple 2 :
Boîte de poids américaine
Avec deux poids de 1 once (oz) et trois poids de respectivement 2oz, 4oz et 8oz, on peut peser en nombre entier d'onces de zéro à une livre (la livre valant seize onces)


wikipediaCet article est issu de l'encyclopédie libre Wikipedia.
Vous pouvez consulter l'article ici ainsi que son historique.
Les textes et les images sont disponibles sous les termes de la Licence de documentation libre GNU.


maths haut de pagehaut Retrouvez cette page sur ilemaths l'île des mathématiques
© Tom_Pascal & Océane 2012