Perché i computer usano il sistema di numeri binari (0,1)? Perché non usano invece Ternary Number System (0,1,2) o altri sistemi numerici?
Perché i computer usano il sistema di numeri binari (0,1)? Perché non usano invece Ternary Number System (0,1,2) o altri sistemi numerici?
Risposte:
Dato che siamo in Informatica, risponderò in questo modo: non lo fanno.
Cosa intendiamo per "computer"? Ci sono molte definizioni, ma nell'informatica come scienza, la più comune è la macchina di Turing.
Una macchina turing è definita da diversi aspetti: un insieme di stati, una tabella di transizione, un insieme di arresto, e importante per la nostra discussione, un alfabeto. Questo alfabeto fa riferimento ai simboli che la macchina può leggere come input e che può scrivere sul suo nastro. (Potresti avere alfabeti di input e nastro diversi, ma per ora non preoccuparti di questo.)
Quindi, posso creare una macchina di Turing con l'alfabeto di input o o o . Non importa Il fatto è che posso usare qualsiasi alfabeto che scelgo per codificare i dati.{ a , b } { 0 , 1 , 2 } { ↑ , ↓ }
Quindi, posso dire che è 9, oppure posso dire che è 9. Non importa, poiché sono solo simboli che possiamo distinguere.↑ ↑ ↑ ↓ ↑ ↑ ↓
Il trucco è che il binario è abbastanza. Qualsiasi sequenza di bit può essere interpretata come un numero, quindi è possibile convertire da binario a qualsiasi altro sistema e viceversa.
Ma risulta che anche l'unario è abbastanza. Puoi codificare 9 come 111111111. Questo non è particolarmente efficiente, ma ha la stessa potenza computazionale.
Le cose diventano ancora più folli quando si guardano modelli alternativi di calcolo, come il calcolo Lambda. Qui puoi visualizzare i numeri come funzioni. In effetti, puoi visualizzare tutto come funzioni. Le cose sono codificate non come bit, 0 e 1, ma come funzioni matematiche chiuse senza stato mutabile. Vedi i numeri della Chiesa per come puoi fare i numeri in questo modo.
Il punto è che 0 e 1 sono un problema completamente specifico dell'hardware e la scelta è arbitraria. Quale codifica stai utilizzando non è particolarmente rilevante per l'informatica, al di fuori di alcuni sottocampi come i sistemi operativi o le reti.
Alcune altre cose da considerare:
Parte della ragione per usare un sistema di numeri binari è che è il sistema di numeri a base più bassa che può rappresentare numeri nello spazio logaritmico, piuttosto che lineare. Per distinguere in modo univoco tra numeri diversi in unario, la lunghezza media delle rappresentazioni deve essere proporzionale ad almeno , poiché esiste solo una stringa di lunghezza dove ; . Per distinguere in modo univoco tra numeri diversi in binario, la lunghezza media delle rappresentazioni deve essere proporzionale ad almeno , poiché esistono numeri binari di lunghezza ;n k k < n 1 + 1 + . . . + 1 = n n log 2 n 2 k k 1 + 2 + . . . + n + 1nlog10nlog102≈0,3nn . La scelta di una base più ampia migliora il fabbisogno di spazio di un fattore costante; la base 10 ti dà numeri con una lunghezza di rappresentazione media di , che è volte la lunghezza media di una rappresentazione di base due per tutti . La differenza tra binario e unario è molto maggiore; infatti, è una funzione di . Ottieni molto scegliendo binario piuttosto che unario; si ottiene molto meno scegliendo una base più alta, in confronto.
C'è qualche verità nell'idea che è più facile implementare la logica digitale se dobbiamo solo distinguere due stati. I segnali elettrici sono analogici e, come tali, possono essere interpretati per rappresentare tutti gli stati discreti che desideri ... ma hai bisogno di hardware più preciso (quindi costoso e schizzinoso) per distinguere in modo affidabile più stati nello stesso intervallo. Questo suggerisce di scegliere una base più bassa che puoi.
Un'altra considerazione potenzialmente importante è che la logica è stata classicamente intesa per coinvolgere due valori distinti: e . Ora abbiamo logiche più elaborate di così, ma molta matematica e scienza si basano ancora su nozioni piuttosto elementari. Quando si considera che i computer vengono utilizzati per il calcolo e che la logica è importante per il calcolo, suggerisce che abbia un buon supporto per almeno due stati distinti ... ma la logica non richiede davvero molto di più.f a l s e
Uno dei motivi principali per cui la maggior parte dei circuiti di computer utilizza due stati è che la quantità di circuiti necessaria per distinguere tra n diversi livelli di tensione è approssimativamente proporzionale a n -1. Di conseguenza, avere tre stati riconoscibili richiederebbe il doppio dei circuiti per segnale e averne quattro richiederebbe il triplo. Triplicare la quantità di circuiti mentre raddoppiare solo la quantità di informazioni rappresenterebbe una perdita di efficienza.
Si noti che ci sono alcuni punti nei computer in cui le informazioni vengono archiviate o comunicate utilizzando più di due stati per elemento. In un array di memoria flash, centinaia o migliaia di celle di memoria possono essere servite da una serie di circuiti di rilevamento del livello. L'uso di quattro livelli per cella anziché due quando si memorizza una determinata quantità di informazioni potrebbe più che triplicare le dimensioni del circuito di rilevamento del livello, ma ridurrebbe della metà il numero di celle di memoria richieste. Quando si comunica su Ethernet 100-base-T o più veloce, il costo dei circuiti necessari per rilevare livelli multipli di segnale sul cavo sarà probabilmente ridotto dal costo di dover utilizzare un cavo con più fili o utilizzare cavi in grado di gestire più transizioni del segnale al secondo senza un livello inaccettabile di distorsione.
Esistono computer quantistici nei laboratori di ricerca che usano q-bit come unità di base delle informazioni che possono essere contemporaneamente sia 0 che 1.
http://en.wikipedia.org/wiki/Quantum_computer
Ci sono stati anche computer quantici ternari costruiti secondo questo riferimento http://en.wikipedia.org/wiki/Ternary_computer
Quindi, è davvero possibile costruire dispositivi di calcolo alternativi che non si basano sul sistema di numeri binari. I sistemi a fibre ottiche, ad esempio, usano 0 per l'oscurità e due diverse polarizzazioni ortogonali della luce come 1 e -1.
Il motivo per cui menziono queste cose è perché voglio dimostrare che sebbene i numeri binari siano sufficienti per il calcolo, ci sono sistemi numerici alternativi che possono essere usati per il calcolo.
Il sistema di numeri binari è bello in questo senso possiamo codificare tutti gli interi usando la rappresentazione radix dei numeri. http: // en.wikipedia.org/wiki/Radix Questi valori possono rappresentare il codice ASCII A = 0x41 = 01000001 oppure il valore potrebbe rappresentare un'istruzione macchina nop = 0x90 = 0x10010000.
Al cuore dei computer digitali la potenza di elaborazione è un transistor, che funziona come un interruttore. Aumentando la corrente sul "gate" dell'interruttore, consente alla corrente di fluire tra il "collettore" e "emettitore" - l'interruttore è acceso. Il transistor sarà progettato per funzionare in una delle due modalità - completamente acceso o completamente spento ("saturo") - con una chiara divisione di quelli che sono quegli stati. Il transistor può passare rapidamente tra i due stati, rimarrà nello stato con errori molto limitati.
Questo circuito costituisce la base per i dispositivi logici, come AND, NAND, OR, XOR e altre funzioni. La funzione NAND è la più elementare dei mattoni. Questi dispositivi logici sono assemblati per fornire processori che rimangono in uno stato prevedibile e molti transistor possono essere impacchettati in un piccolo spazio per fornire le funzionalità necessarie.
Un transistor può gestire stati multipli o variabili, ma quando funziona in quel modo non produce computer "digitali" convenzionali - tende a rimanere in uno stato prevedibile e sono inclini a interferenze, saturazione, osculazione, ecc. hanno applicazioni limitate in termini di capacità computazionali. Gli amplificatori operazionali potrebbero essere considerati computer analogici.
Utilizziamo solo binario (1,0) perché al momento non disponiamo della tecnologia per creare "switch" in grado di contenere in modo affidabile più di due possibili stati. (I computer quantistici non sono esattamente in vendita al momento.) Il sistema binario è stato scelto solo perché è abbastanza facile distinguere la presenza di una corrente elettrica da un'assenza di corrente elettrica, specialmente quando si lavora con trilioni di tali connessioni. E usare qualsiasi altra base numerica in questo sistema ridicolo, perché il sistema avrebbe bisogno di convertirsi costantemente tra di loro. Questo è tutto quello che c'è da fare.