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?
computer-architecture
binary-arithmetic
Rai Ammad Khan
la source
la source
Réponses:
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 } { a , 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.
la source
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 k où k < 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 2n n k k<n 1+1+...+1=n n , car il y a 2 k nombres binaires de longueur k ; 1 + 2 + . . . + n + 1log2n 2k k . 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 estlog102≈0,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=n n log10n log102≈0.3 n n
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.true false
la source
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.
la source
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.
la source
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.
la source
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.
la source