« Algèbre de Boole/Utiliser le système binaire » : différence entre les versions

Contenu supprimé Contenu ajouté
MedBot (discussion | contributions)
m Bot : Remplacement de texte automatisé (-«  +« & - » + »)
MedBot (discussion | contributions)
m robot Ajoute:zh Modifie:ja
Ligne 1 :
[[ca:Codi binari]] [[da:Binære talsystem]] [[de:Dualsystem]] [[en:Binary numeral system]] [[es:Sistema binario]] [[eo:Duuma sistemo]] [[it:Sistema numerico binario]] [[nl:Binair]] [[ja:二進記数法]] [[no:Binærtall]] [[pl:Dwójkowy system liczbowy]] [[ro:Sistem binar]] [[fi:Binäärijärjestelmä]] [[zh:二进制]]
{{ébauche}}
 
''Cet article est consacré au système de numération binaire. En [[astrophysique]], un '''système binaire''' est également un système constitué de deux [[astre]]s tournant l'un autour de l'autre (voir [[étoile binaire]]).''
L''''arithmétique binaire''' est la manière dont on mène les calcul avec des nombres [[binaire]]s.
 
 
C'est un des pilliers de l'[[informatique]]. En effet, l'[[ordinateur]] ne comprend que deux chiffres : 1 et 0, qui correspondent à l'état ouvert ou fermé du circuit.
Le '''système binaire''' est un [[système de numération]] utilisant la base [[deux|2]]. On nomme couramment [[bit]] (de l'anglais ''binary digit'') les [[chiffre]]s de la numérotation binaire. Ceux ci ne peuvent prendre que deux valeurs, notées par convention [[zéro|0]] et [[un|1]].
Un calcul informatique n'est donc qu'une suite de 0 et de 1 à laquelle on « ajoute » d'autres suites de 0 et de 1.
 
Un octet est un nombre constitué de 8 chiffres binaires.
Le système binaire est souvent utilisé pour représenter des valeurs telles que « vrai » et « faux », « tout » et « rien », « on » et « off ». Il convient notamment pour représenter le fonctionnement de l'[[électronique numérique]] utilisée dans les [[ordinateur]]s, d'où son usage en [[informatique]]. S'il se montre peu efficace pour l'usage humain (il faut 16 chiffres binaires pour représenter un nombre décimal de 5 chiffres !), il permet d'utiliser en ''électronique'' des circuits de ''commutation'', dont le coût unitaire est si faible (quelques picoeuros) que la charge des traductions depuis et vers le ''décimal'' ne constitue plus un problème.
 
 
==Codage binaire==
 
Le codage le plus courant est l'équivalent en base deux de la [[Système arithmétique positionnel|numération de position]] que nous utilisons quotidiennement en base 10.
 
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 [[système décimal|décimale]] est 59 :
59 = 1×32 + 1×16 + 1×8 + 0×4 + 1×2 + 1×1
59 = 1×2<small><sup>5</sup></small> + 1×2<small><sup>4</sup></small> + 1×2<small><sup>3</sup></small> + 0×2<small><sup>2</sup></small> + 1×2<small><sup>1</sup></small> + 1×2<small><sup>0</sup></small>
59 = 111011 en binaire
 
Avec n bits, ce système permet de représenter les nombres entre 0 et 2<sup>n</sup>-1. Il est donc possible de compter sur ses dix doigts jusqu'à 1024 (2<small><sup>10</sup></small>) en binaire. Il suffit d'affecter à chaque doigt une valeur binaire (pouvant être représenté par un doigt plié).
 
===Complément à deux===
Ce codage permet de représenter des nombres négatifs. Dans ce système, multiplier un nombre par -1 consiste à permuter les valeurs de chaque bits et à ajouter 1 au nombre obtenu:
 
Par exemple pour obtenir -5:
 
0101 codage de 5 en binaire
1010 on permute la valeur de chaque bits
1011 on ajoute 1
 
Ce codage à 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 -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 -2<sup>n-1</sup> et 2<sup>n-1</sup>-1.
 
''voir article détaillé: [[Complément à deux]]''
 
===Code 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é.
 
0 0000
1 0001
2 0011
3 0010
4 0110
5 0111
6 0101
7 0100
 
Il est surtout utilisé pour coder des positions, par exemple sur des règles optiques.
===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'aventage 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 10<sup>n/4</sup>-1. Soit approximativement entre 0 et 1.778<sup>n</sup>-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 [[nombre à précision arbitraire|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 à coder + 3.
 
==Applications==
 
=== Théorie de l'information ===
En [[théorie de l'information]], on peut utiliser le ''bit'' comme unité de mesure de l'information. La théorie elle-même est indifférente à la représentation des grandeuurs qu'elle utilisie.
 
=== 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 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]].
 
En [[informatique]], la représentation binaire permet de clairement manipuler des [[bit]]s : 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 [[système octal|octale]] ou plus fréquemment [[système hexadécimal|héxadécimale]]. La quasi totalité des [[microprocesseur]]s actuels travaillant avec des mots de 8, 16, 32 ou 64 bits, la notation héxadécimale permet de manipuler l'information par paquets de 4 bits (contre 3 pour la notation octale plus populaire du temps des premiers minordinateurs [[DEC]] à 12 bits).
 
*63 <sub>[[système décimal|(10)]]</sub> = 111111 <sub>(2)</sub> = 77 <sub>[[système octal|(8)]]</sub> = 3F <sub>[[système hexadécimal|(16)]]</sub>
*64 <sub>[[système décimal|(10)]]</sub> = 1000000 <sub>(2)</sub> = 100 <sub>[[système octal|(8)]]</sub> = 40 <sub>[[système hexadécimal|(16)]]</sub>
*255 <sub>[[système décimal|(10)]]</sub> = 11111111 <sub>(2)</sub> = 377 <sub>[[système octal|(8)]]</sub> = FF <sub>[[système hexadécimal|(16)]]</sub>
*256 <sub>[[système décimal|(10)]]</sub> = 100000000 <sub>(2)</sub> = 400 <sub>[[système octal|(8)]]</sub> = 100 <sub>[[système hexadécimal|(16)]]</sub>
 
===Théorie des graphes (et jeux combinatoires)===
 
La stratégie gagnante du [[jeu de Marienbad]] peut se représente de façon concise en utilisant la numération binaire pour caractériser les mouvements apparenant au [[noyau]] du [[graphe]], celui où existe toujours un mouvement conduisant à une victoire assurée.
 
==Voir aussi==
 
* [[CalculsFormat àdes virgule flottantedonnées]]
* [[NombreArithmétique négatifbinaire]]
* [[ComplémentPréfixe à 1binaire]]
* [[ComplémentVirgule à 2flottante]]
* [[Système bibi-binaire]] de [[Boby Lapointe]]
 
[[Catégorie:Numération]] [[catégorie:numérationinformatique]]
[[catégorie:informatique]]