Pourquoi les ordinateurs utilisent-ils le système de nombres binaires (0,1)?


31

Pourquoi les ordinateurs utilisent-ils le système de nombres binaires (0,1)? Pourquoi n'utilisent-ils pas à la place le système numérique ternaire (0,1,2) ou tout autre système numérique?


9
C'est une question sur le génie électrique. Apparemment, les portes binaires sont plus faciles à mettre en œuvre. IIRC un ordinateur basé sur ternaire avait été construit à un moment donné.
Yuval Filmus

7
Quelles recherches avez-vous faites? Lorsque je tape le titre de votre question dans Google, je récupère les résultats de recherche qui fournissent plusieurs réponses à votre question. De plus, l'article Wikipedia sur les nombres binaires et le code binaire a une courte explication. Nous nous attendons à ce que vous fassiez beaucoup de recherches avant de demander ici, et il me semble que vous n'avez même pas fait de recherche fondamentale avant de demander. La recherche sur Google et Wikipedia est un strict minimum.
DW

De plus grandes bases ne se sont pas révélées utiles dans l'ensemble.
Raphael

@Raphael: Ternary did
Mooing Duck

2
Je vais mettre cela en commentaire car il y a déjà une réponse acceptée. Il est extrêmement difficile de construire des appareils électroniques qui distinguent de manière fiable entre dix valeurs en raison des tolérances de fabrication. Il est relativement facile de construire des appareils électroniques qui distinguent deux valeurs. Donc, la réponse courte est que les ordinateurs utilisent la représentation binaire pour la fiabilité . J'ai écrit une réponse plus détaillée pour ceux qui peuvent s'en soucier: bbrown.kennesaw.edu/papers/why_binary.html
Bob Brown

Réponses:


31

Puisque nous sommes en informatique, je répondrai de cette façon: ils ne le font pas.

Qu'entendons-nous par «ordinateur»? Il existe de nombreuses définitions, mais en informatique en tant que science, la plus courante est la machine de Turing.

Une machine de Turing est définie par plusieurs aspects: un jeu d'états, une table de transition, un jeu d'arrêt et, pour notre discussion, un alphabet. Cet alphabet fait référence aux symboles que la machine peut lire en entrée et qu'elle peut écrire sur sa bande. (Vous pouvez avoir différents alphabets d'entrée et de bande, mais ne nous en préoccupons pas pour l'instant.)

Donc, je peux faire une machine de Turing avec l'alphabet d'entrée , ou { a , b } , ou { 0 , 1 , 2 } , ou { , } . Ça n'a pas d'importance. Le fait est que je peux utiliser n'importe quel alphabet que je choisis pour encoder des données.{0,1}{une,b}{0,1,2}{,}

Donc, je peux dire que est 9, ou je peux dire que est 9. Cela n'a pas d'importance, car ce ne sont que des symboles que nous pouvons distinguer.0001001↑↑↑ ↓ ↑↑ ↓

L'astuce est que le binaire est suffisant. Toute séquence de bits peut être interprétée comme un nombre, vous pouvez donc convertir du binaire en n'importe quel autre système et inversement.

Mais, il s'avère que l'unaire suffit aussi. Vous pouvez encoder 9 en 111111111. Ce n'est pas particulièrement efficace, mais il a la même puissance de calcul.

Les choses deviennent encore plus folles lorsque vous examinez d'autres modèles de calcul, comme le calcul Lambda. Ici, vous pouvez afficher les nombres en tant que fonctions. En fait, vous pouvez tout voir comme des fonctions. Les choses ne sont pas codées en bits, 0 et 1, mais en fonctions mathématiques fermées sans état mutable. Voir les chiffres de l' Église pour savoir comment faire les chiffres de cette façon.

Le fait est que, 0s et 1s est un problème complètement spécifique au matériel, et le choix est arbitraire. L'encodage que vous utilisez n'est pas particulièrement pertinent pour l'informatique, en dehors de quelques sous-domaines tels que les systèmes d'exploitation ou les réseaux.


Qu'en est-il du codage d'entrée dans les machines à 2 compteurs. Cela semble important. Êtes-vous sûr de pouvoir ignorer les problèmes d'encodage si radicalement? Et je ne conviendrais guère que la complexité n'est pas un problème; mais le lambda calcul est-il un bon moyen de le résoudre?
babou

J'admets qu'il y a des problèmes de complexité lorsque vous utilisez unary. Mais le choix de binaire vs ternaire ou quelque chose comme ça est quelque peu arbitraire. Ce n'est pas comme si le choix de l'encodage n'avait pas d'importance, mais il n'y a pas de loi qui dicte pourquoi nous en utilisons un en particulier. Il est dicté principalement par la commodité ou par les exigences matérielles, qui sont quelque peu en dehors de la science informatique.
jmite

1
"Donc, je peux faire une machine de Turing avec un alphabet d'entrée". Je pense que vous devriez écrire "alphabet sur bande" ici au lieu de "alphabet d'entrée". La partie intéressante est ce qui est utilisé pour le calcul et non pour l'entrée. De plus, je ne suis pas d'accord avec le fait qu'unaire soit suffisant. Une MT avec un alphabet de bande unaire est presque inutile, car la bande est constante.
Simon S

Concernant la dernière phrase: la conception et l'étude du matériel informatique et de l'architecture font également partie de l'informatique.
Kaveh

2
Vous voudrez peut-être ajouter le fait que passer d'unaire à binaire réduit la taille de vos nombres à leur logarithme, ce qui est une amélioration sérieuse, tout en allant plus loin ne gagne pas autant (seulement un facteur linéaire).
reinierpost

23

Quelques autres choses à considérer:

Une des raisons de l'utilisation d'un système numérique binaire est qu'il s'agit du système numérique de base le plus bas qui peut représenter des nombres dans un espace logarithmique plutôt que linéaire. Pour distinguer uniquement nombres différents dans unaire, la longueur moyenne des représentations doit être proportionnelle à au moins n , car il n'y a qu'une seule chaîne de longueur kk < n ; 1 + 1 + . . . + 1 = n . Pour distinguer uniquement n nombres différents en binaire, la longueur moyenne des représentations doit être proportionnelle à au moins log 2nnkk<n1+1+...+1=nn , car il y a 2 k nombres binaires de longueur k ; 1 + 2 + . . . + n + 1log2n2kk. Le choix d'une base plus grande améliore l'espace requis par un facteur constant; la base 10 vous donnennombres avec une longueur de représentation moyenne delog10n, qui estlog1020,3fois la longueur moyenne d'une représentation de base deux pour toutn. La différence entre binaire et unaire est beaucoup plus grande; en fait, c'est une fonction den. Vous obtenez beaucoup en choisissant binaire sur unaire; vous obtenez beaucoup moins en choisissant une base plus élevée, par comparaison.1+2+...+n+12=nnlog10nlog1020.3nn

Il y a une part de vérité dans l'idée qu'il est plus facile de mettre en œuvre la logique numérique si nous n'avons qu'à distinguer deux états. Les signaux électriques sont analogiques et, en tant que tels, peuvent être interprétés comme représentant autant d'états discrets que vous le souhaitez ... mais vous avez besoin d'un matériel plus précis (donc coûteux et capricieux) pour distinguer de manière fiable plus d'états sur la même plage. Cela suggère de choisir une base aussi basse que possible.

Une autre considération potentiellement importante est que la logique est classiquement comprise comme impliquant deux valeurs distinctes: et f a l s e . Maintenant, nous avons des logiques plus sophistiquées que cela, mais beaucoup de mathématiques et de sciences reposent toujours sur de jolies notions fondamentales. Lorsque vous considérez que les ordinateurs sont utilisés pour calculer et que la logique est importante pour le calcul, cela suggère d'avoir une bonne prise en charge d'au moins deux états distincts ... mais la logique n'exige pas vraiment plus que cela.truefalse


9

L'une des principales raisons pour lesquelles la plupart des circuits informatiques utilisent deux états est que la quantité de circuits nécessaires pour distinguer entre n niveaux de tension différents est à peu près proportionnelle à n -1. Par conséquent, avoir trois états discernables nécessiterait deux fois plus de circuits par signal, et en avoir quatre nécessiterait trois fois plus. Tripler la quantité de circuits tout en doublant la quantité d'informations représenterait une perte d'efficacité.

Notez qu'il y a des endroits dans les ordinateurs où les informations sont stockées ou communiquées en utilisant plus de deux états par élément. Dans une matrice de mémoire flash, des centaines ou des milliers de cellules de mémoire peuvent être desservies par un ensemble de circuits de détection de niveau. L'utilisation de quatre niveaux par cellule plutôt que de deux lors du stockage d'une certaine quantité d'informations pourrait plus que tripler la taille des circuits de détection de niveau, mais réduirait de moitié le nombre de cellules de mémoire requises. Lors de la communication via Ethernet 100-base-T ou plus rapide, le coût des circuits nécessaires pour détecter plusieurs niveaux de signal sur le câble sera probablement éclipsé par le coût d'avoir à utiliser un câble avec plus de fils ou à utiliser des câbles qui peuvent gérer plus transitions de signal par seconde sans niveau de distorsion inacceptable.


9

Il existe des ordinateurs quantiques dans les laboratoires de recherche qui utilisent q-bit comme unité d'information de base pouvant être à la fois 0 et 1 simultanément.
http://en.wikipedia.org/wiki/Quantum_computer

Il y a également eu des ordinateurs quantiques ternaires construits selon cette référence http://en.wikipedia.org/wiki/Ternary_computer

Ainsi, il est en effet possible de construire des dispositifs informatiques alternatifs qui ne reposent pas sur le système numérique binaire. Les systèmes à fibres optiques, par exemple, utilisent 0 pour l'obscurité et deux polarisations orthogonales différentes de la lumière comme 1 et -1.

La raison pour laquelle je mentionne ces choses est parce que je veux montrer que, bien que les nombres binaires soient suffisants pour le calcul, il existe des systèmes numériques alternatifs qui peuvent être utilisés pour le calcul.

xZ


3
Mais ils utilisent toujours un système binaire, en calcul quantique l'état de superposition n'est pas une troisième valeur possible. Le fait de lancer un exemple d'informatique quantique n'est pas utile pour la question posée.
lPlant

Je ne savais pas à ce sujet ..
Ali786

"q-bit comme unité d'information de base qui peut être à la fois 0 et 1 simultanément." Ça n'a pas de sens. Les Qubits sont fondamentalement différents des bits normaux, en ce qu'ils représentent une valeur non discrète (complexe). Ils sont incomparables à toutes fins pratiques.
Lézard discret

3

Au cœur de la puissance de traitement des ordinateurs numériques se trouve un transistor, qui fonctionne comme un interrupteur. En augmentant le courant à la "porte" de l'interrupteur, il permet au courant de circuler entre le "collecteur" et l '"émetteur" - l'interrupteur est activé. Le transistor sera conçu pour fonctionner dans l'un des deux modes - tout ou rien («saturé») - avec une division claire de ce que sont ces états. Le transistor peut basculer rapidement entre les deux états, restera dans l'état avec des erreurs très limitées.

Ces circuits constituent la base des dispositifs logiques, tels que AND, NAND, OR, XOR et d'autres fonctions. La fonction NAND étant le plus élémentaire des blocs de construction. Ces dispositifs logiques sont assemblés pour fournir des processeurs qui restent dans un état prévisible, et de nombreux transistors peuvent être emballés dans un petit espace pour fournir les fonctionnalités nécessaires.

Un transistor peut gérer des états multiples ou variables, mais lorsqu'il fonctionne de cette manière, ils ne produisent pas d'ordinateurs "numériques" conventionnels - ils n'ont pas tendance à rester dans un état prévisible et ils sont sujets aux interférences, à la saturation, aux oscillations, etc. - donc ils ont des applications limitées en termes de capacités de calcul. Les amplificateurs opérationnels peuvent être considérés comme des ordinateurs analogiques.


-3

Nous n'utilisons que le binaire (1,0) parce que nous n'avons actuellement pas la technologie pour créer des «commutateurs» qui peuvent contenir de manière fiable plus de deux états possibles. (Les ordinateurs quantiques ne sont pas exactement en vente pour le moment.) Le système binaire n'a été choisi que parce qu'il est assez facile de distinguer la présence d'un courant électrique d'une absence de courant électrique, en particulier lorsque vous travaillez avec des milliards de ces connexions. Et utiliser n'importe quelle autre base numérique dans ce système est ridicule, car le système devrait constamment se convertir entre eux. C'est tout ce qu'on peut en dire.


2
C'est vrai, mais n'est-ce pas déjà tout inclus dans les réponses existantes?
David Richerby
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.