Vous êtes sur la page 1sur 14

Système binaire

système de numération utilisant la base


2

Cet article ne cite pas suffisamment ses sources

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites


web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les
références utiles à sa vérifiabilité et en les liant à la section « Notes et références »

En pratique : Quelles sources sont attendues ? Comment ajouter mes sources ?

Le système binaire (du latin binārĭus, « double ») est le 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. Un bit peut prendre deux valeurs, notées par
convention 0 et 1.
Exemple d'informations binaires.

Le système binaire est utile pour représenter le fonctionnement de l'électronique numérique


utilisée dans les ordinateurs. Il est donc utilisé par les langages de programmation de bas
niveau.

Définition

Page qui décrit le système binaire par Leibniz.

Le système binaire le plus courant est la base deux mathématique, permettant de représenter
des nombres à l'aide de la numération de position avec seulement deux chiffres : le 0 et le 1.
Dans ce type de codage, chaque nombre est représenté de façon unique par une suite
ordonnée de chiffres. Et chaque position m représente une puissance (m − 1) de la base. Si
l'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 égal à la base, c'est-à-dire dix en base dix, mais deux en base deux.

En base dix, on utilise dix chiffres, de zéro à neuf ; en base n, on utilise n chiffres, de zéro à n
– 1 ; donc en base deux on utilise les deux chiffres « 0 » et « 1 ».

Un nombre qui s'exprime en base B par les quatre chiffres 1101 s'analyse :

, qui donne :

1101 en base B = 10 :


1101 en base B = 8 :
1101 en base B = 2 :

É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éros derrière le 1)
5 101
6 110
7 111
8 1000 huit = deux puissance trois (trois zéros derrière le 1)
9 1001

On donne à chaque bit une puissance de deux, comme cette suite 1, 2, 4, 8, 16, 32, 64. Pour
obtenir le nombre 7, on additionne les trois premiers bits; pour obtenir 6, on additionne
seulement le bit de poids 4 et le bit de poids 2.

Opérations

La mise en forme de cet article est à améliorer

La mise en forme du texte ne suit pas les recommandations de Wikipédia : il faut le


« wikifier ».

Comment faire ?

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 les deux chiffres 0 et 1. Pour la multiplication par
exemple, quelle que soit la base, la multiplication par 10 (c’est-à-dire par la base elle-même)[1]
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 part la signification de cette suite (10 signifie « deux » et
non « dix », 100 signifie « quatre » et non « cent », etc.).

Addition et soustraction

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

On constate que l'addition de deux bits A et B donne A XOR B avec une retenue valant A ET B.

Ainsi :

11

+ 1

____

100

Détail :
1 + 1 = 10 => on pose 0 et on retient 1

1 + 1(retenue) = 10 => on pose 0 et on retient 1

0 + 1(retenue) = 1 => on pose 1 devant 00

Multiplication et division

Multiplier par deux se fait en décalant chaque chiffre d'un cran à gauche et en insérant un
zéro à la fin.

Par exemple, deux fois onze :

1011 onze

//// décalage et insertion de 0


10110 vingt-deux

La division entière par deux se fait en décalant chaque chiffre d'un cran à droite, le chiffre de
droite étant le reste supprimé.

Par exemple onze divisé par deux :

1011 onze

\\\ décalage et suppression du chiffre à droite


101 cinq reste un

Théorie informatique

L'arithmétique binaire (plus simplement le calcul binaire) est utilisée par les systèmes
électroniques les plus courants (calculatrices, ordinateurs, etc.) car les deux chiffres 0 et 1
s'y traduisent par la tension ou le passage d'un courant. Par exemple, le 0 peut être
représenté par l'état bas (tension ou courant nul) et 1 par l'état haut [réf. nécessaire] (tension qui
existe, courant qui passe).

Représentation des entiers négatifs

Pour compléter la représentation des entiers, il faut pouvoir écrire des entiers négatifs.
Deux
représentations existent, le complément à un et le complément à deux.

Vérifications requises
Avant de coder avec tout complément, il est nécessaire de vérifier le bon nombre de bits est
utilisés pour encoder le nombre en tant que nombre binaire signé.

Le nombre de bits est suffisant si et seulement s'il vérifie l'équation où n correspond au


nombre de bits et N au nombre à encoder.

correspond au nombre de caractères possibles (1 est soustrait à 2n puisque l'on


compte à partir de 0) tout en réservant un bit pour le signe.

Complément à un

Article détaillé : Complément à un.

Ce codage consiste à inverser la valeur de chaque bit.

Par exemple pour obtenir −7 :

0111 sept

1000 moins sept

Un défaut de ce système est que zéro a deux représentations : 0000 et 1111 (« +0 » et
« −0 »). Il n'est pas utilisé par les ordinateurs courants, mais l'était par des ordinateurs
anciens comme le Control Data 6600. Les deux représentations du zéro compliquent les
circuits de test.

Complément à deux

Article détaillé : Complément à deux.

Le complément à deux consiste à réaliser un complément à un, puis d'ajouter 1.

Par exemple pour obtenir −7 :

0111 sept

1000 complément à un

1001 complément à deux en ajoutant 1

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 de double représentation du zéro

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.

Entre les bases 2, 8 et 16

Du binaire vers octal ou hexadécimal

Les bases 8 (octale) et 16 (hexadécimale) sont des bases puissances de la base 2. Ces deux
bases sont 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 = 23. Il suffit de parcourir le nombre binaire de la droite vers la gauche en
regroupant les chiffres binaires 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 = 24. Il suffit de parcourir le nombre binaire de la droite vers la


gauche en regroupant les chiffres binaires 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.

Vers le binaire

Il suffit de convertir la valeur de chacun des chiffres sous leur forme binaire en utilisant un
nombre de chiffres correspondant à la puissance de la base : 16 = 24, 8 = 23, donc 4 chiffres
pour l'hexadécimal et 3 pour l'octal :
1A2F16 va s'écrire 1 ⇒ 0001, A ⇒ 1010, 2 ⇒ 0010, F ⇒ 1111, soit 0001 1010 0010 11112.

1568 va s'écrire 1 ⇒ 001, 5 ⇒ 101, 6 ⇒ 110, soit 001 101 1102.

Table des valeurs des groupements de chiffres binaires

Binaire Décimal Octal Hexadécimal Binaire Décimal Octal Hexadécimal


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

Code de Gray ou binaire réfléchi

Article détaillé : Code de Gray.

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[2].

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.

Décimal codé binaire (DCB, ou BCD pour binary coded


decimal)

Article détaillé : Décimal codé binaire.

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é sur 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 DCB 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 DCB.

Il existe des variantes du codage DCB :

le code Aiken où 0, 1, 2, 3, 4 sont codés comme en DCB et 5, 6, 7, 8, 9 sont codés de 1011 à


1111 ; ce code permet d'obtenir le complément à 9 en permutant les 1 et les 0 ;

le codage binaire excédant 3, qui consiste à représenter le chiffre à coder + 3.

Applications

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.

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.

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,5 V près, et le
chiffre 1 pour signifier sa présence à plus de 0,5 V. Cette marge de tolérance permet de
pousser les cadences des microprocesseurs à des valeurs atteignant plusieurs gigahertz.

En informatique, la représentation binaire permet de clairement manipuler des bits : chaque


chiffre binaire correspond à un bit. Cependant, la représentation binaire nécessitant l'usage
de beaucoup de chiffres (même pour des nombres assez petits), elle entraîne d'importants
problèmes de lisibilité et donc de risques d'erreur de transcription pour les programmeurs. On
préfère donc d'autres représentations : la notation hexadécimale, qui permet de manipuler
l'information par paquets de 4 bits, est adaptée à la quasi-totalité des microprocesseurs
actuels travaillant avec des mots de 8, 16, 32 ou 64 bits ; plus rare, la notation octale,
populaire du temps des premiers mini-ordinateurs DEC à 12 ou 36 bits, qui permet de
représenter l'information par paquets de 3 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)

Histoire

Les hexagrammes chinois, plus tard reconnus comme la première expression d'une
numération binaire, apparaissent dans le Yi Jing vers 750 av J.C.(période des Zhou de
l'Ouest[3]) mais leur signification mathématique, si elle a été connue, fut oubliée ensuite[4].

Le mathématicien indien Pingala est crédité d'une table représentant 0 à 7 en numération


binaire, dans son Chandaḥ-śāstra datant peut-être du troisième ou deuxième siècle av
J.C.[5],[6].

Vers 1600 le mathématicien anglais Thomas Harriot effectue des opérations en


numération binaire, ainsi qu'en témoigne ses manuscrits publiés récemment seulement[7].

À la même époque Francis Bacon utilise un code secret bilitère (à 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[8].

John Napier, mathématicien écossais inventeur des logarithmes, dans son traité
Rhabdologie publié en 1617, décrit trois systèmes pour faciliter les calculs, dont un, dit
checkerboard, est binaire[9].
L'espagnol Caramuel dans son Mathesis biceps vetus et nova publié en 1670, paraît le
premier à avoir donné une étude des numérations non décimales, dont binaire,
succinctement[10].

À Leibniz revient d'avoir étudié le système binaire pour lui-même, montré comment s'y
pratiquent les quatre opérations (« si aisées qu’on n’a jamais besoin de rien essayer ni
deviner, comme il faut faire dans la division ordinaire[11] »), noté que ce calcul « est le plus
fondamental pour la science, et donne de nouvelles découvertes[11] », et même envisagé
que « ce type de calcul pourrait également être réalisé avec une machine (sans roues), de
la manière suivante certainement très facilement et sans effort. Avec une boîte munie de
trous, qui peuvent être ouverts et fermés.[12] »

En outre, ayant communiqué « au R. P. Bouvet, Jésuite Français célèbre, qui demeure à
Pékin, (sa) manière de compter par 0 et 1, il n’en fallut pas davantage pour lui faire
reconnaître que c’est la clef des figures de Fohy », en 1601[11]. Ainsi fut déchiffrée l’énigme
des hexagrammes attribués à Fuxi, et Leibniz fait ensuite publier son exposé du système
binaire par l'Académie des sciences de Paris en 1703[11].

En 1847 George Boole publie les premiers travaux de son algèbre binaire, dite booléenne,
n'acceptant que deux valeurs numériques : 0 et 1.

1872 : publication d'une application du système binaire pour la résolution du problème du


baguenodier (Luc-Agathon-Louis Gros, Théorie du baguenodier par un clerc de notaire
lyonnais, Lyon, Aimé Vingtrinier, 1872 (lire en ligne (https://books.google.fr/books?id=EcoB
JRekd-sC&pg=PP1)  [archive]))

1876 : L.-V. Mimault dépose le brevet 3011 concernant :


les systèmes télégraphiques multiples, imprimeurs et écrivants basés sur des
combinaisons mécaniques ou graphiques provenant de « (X + 1) puissance m » ;

les systèmes télégraphiques multiples, imprimeurs et écrivants basés sur des


combinaisons de la progression 1 : 2 : 4 : 8 : 16[13].

Notes et références

1. Attention : 10 et non dix ; en base deux, 10 vaut deux.

2. (en) Frank Gray pour Bell Labs, Brevet U.S. 2,632,058 : Pulse code communication (https://
www.google.com/patents/US2632058)  [archive], déposé le 13 novembre 1947, publié le
17 mars 1953, sur Google Patents.

3. (en) E. L. Shaugnessy, « I Ching (Chou I) », dans M. Loewe (dir.), Early Chinese Texts: A
Bibliographical Guide, Berkeley, 1993, p. 216-228.

4. Témoignage du père Bouvet rapporté par Leibniz (sur Wikisource).


5. (en) Kim Plofker, Mathematics in India, Princeton (N.J.), Princeton University Press, 2009,
357 p. (ISBN 978-0-691-12067-6, lire en ligne (https://books.google.com/books?id=DHvTh
PNp9yMC&printsec=frontcover)  [archive]), chap. 3 (« Mathematical Traces in the Early
Classical Period »), p. 55-57.

6. (en) B. Van Nooten, « Binary numbers in Indian antiquity », Journal of Indian Philosophy,
vol. 21, no 1,‎mars 1993, p. 31–50 (ISSN 0022-1791 (https://www.worldcat.org/issn/0022-1
791&lang=fr) , DOI 10.1007/BF01092744 (https://dx.doi.org/10.1007/BF01092744) ).

7. L’édition électronique des manuscrits de Thomas Harriot (1560-1621) (https://images.mat


h.cnrs.fr/L-edition-electronique-des-manuscrits-de-Thomas-Harriot-1560-1621)  [archive] ;
fac-similé en ligne (https://images.math.cnrs.fr/IMG/jpg/fig_2_binary.jpg)  [archive].

8. (en) Bacon's cipher.

9. (en) John Napier, Rabdologiæ, traduit du latin par William Frank Richardson, 'ntroduction
par Robin E. Rider, 1990, MIT Press (ISBN 0-262-14046-2).

10. Robert Ineichen, Leibniz, Caramuel, Harriot und das Dualsystem, Mitteilungen der
deutschen Mathematiker-Vereinigung, vol. 16, 2008, issue 1, p. 14.

11. Leibniz, Explication de l'arithmétique binaire, qui se sert des seuls caractères 0 et 1, avec
des remarques sur son utilité, et sur ce qu'elle donne le sens des anciennes figures
chinoises de Fohy (lire sur Wikisource et sur Mémoires de l'Académie des sciences (http
s://gallica.bnf.fr/ark:/12148/bpt6k3483p/f247.image)  [archive] de Paris, 1703, p. 85-89).

12. De progressione dyadica, manuscrit daté de 1679, traduction de Yves Serra, p. 5 (lire en
ligne (http://bibnum.education.fr/sites/default/files/leibniz-numeration-
texte.pdf)  [archive]) ; voir aussi Yves Serra, Le manuscrit « De Progressione Dyadica » de
Leibniz (lire en ligne (https://journals.openedition.org/bibnum/553)  [archive] sur Bibnum
).

13. Description des notes


(https://gallica.bnf.fr/ark:/12148/bpt6k3058f/f1262.image)  [archive] contenues dans le
brevet sous plis.

Voir aussi

Articles connexes
Auguste De Morgan

Système hexadécimal

Système Bibi-binaire de Boby Lapointe


Virgule flottante

Débit binaire

Préfixe binaire

Byte

Liens externes
(en) Polynesian people used binary numbers 600 years ago : Nature News & Comment (htt
ps://www.nature.com/news/polynesian-people-used-binary-numbers-600-years-ago-1.14
380)  [archive]

[vidéo] Une introduction au binaire en utilisant ses deux mains (https://www.youtube.com/


watch?v=DY6_bJWkXIs)  [archive] sur YouTube

[vidéo] Un tour de magie utilisant le système binaire (https://www.youtube.com/watch?v=


A7WUzkXZRcQ)  [archive] sur YouTube

Portail de la logique Portail de l’informatique


Portail de la programmation informatique
Arithmétique et théorie des nombres
Portail de l'informatique théorique

Ce document provient de
« https://fr.wikipedia.org/w/index.php?
title=Système_binaire&oldid=196708261 ».


Dernière modification il y a 6 jours par Epok

Vous aimerez peut-être aussi