Esiste un'alternativa ai bit come unità di dati più piccola? Qualcosa che non sarà solo 0 o 1, ma in realtà contiene molti stati possibili in mezzo? Non sarebbe più naturale conservare galleggianti del genere?
Esiste un'alternativa ai bit come unità di dati più piccola? Qualcosa che non sarà solo 0 o 1, ma in realtà contiene molti stati possibili in mezzo? Non sarebbe più naturale conservare galleggianti del genere?
Risposte:
Certo che è possibile, sia teoricamente che praticamente.
Teoricamente, ci sono due classi di alternative: sistemi numerici digitali con una base diversa da 2 (in effetti, il sistema decimale come lo conosciamo è uno di questi sistemi); e sistemi numerici non digitali. Matematicamente parlando, stiamo parlando di domini discreti vs. continui.
In pratica, entrambe le opzioni sono state esplorate. Alcuni dei primi computer digitali (ad esempio ENIAC) utilizzavano la codifica decimale anziché la codifica binaria ormai onnipresente; altre basi, ad esempio ternarie, dovrebbero essere altrettanto fattibili (o non fattibili). Il linguaggio di programmazione esoterico Malbolge si basa su un computer ternario teorico; mentre per lo più satirici, non c'è motivo tecnico per cui non dovrebbe funzionare. L'archiviazione e l'elaborazione del dominio continuo sono state storicamente eseguite su computer analogici, dove è possibile codificare quantità come frequenze e / o ampiezze di segnali oscillanti e quindi eseguire calcoli applicando ogni sorta di modulazioni a questi segnali. Oggi, il calcolo quantistico rende di nuovo interessante la teoria alla base delle celle a memoria continua.
Ad ogni modo, il bit come unità di informazione teoricamente più piccola rimane valido, poiché qualsiasi alternativa può codificare più informazioni di un singolo sì / no e nessuno ha ancora elaborato un'unità teorica più piccola (e non mi aspetto che accada in qualsiasi momento presto).
double
Some of the early digital computers employed decimal encodings rather than the now ubiquitous binary encoding
- In realtà, le codifiche decimali sono ancora in uso oggi; si chiama BCD . Il BIOS nella maggior parte dei computer lo usa (per le date basate su decimali) , così come la maggior parte dei calcolatori cheapo, perché richiede meno circuiti (cioè è più economico) per fare tutto in BCD di quanto non lo sia fare in binario e avere un convertitore binario-decimale.
Stai sostanzialmente descrivendo un segnale analogico, che viene utilizzato nei sensori, ma raramente per i calcoli interni. Il problema è che il rumore degrada la qualità, è necessaria una calibrazione molto precisa di un punto di riferimento che è difficile da comunicare e la trasmissione è un problema perché perde forza quanto più viaggia.
Se sei interessato ad esplorare il calcolo analogico, la maggior parte delle classi di "introduzione all'elettronica" di livello inferiore ti permettono di costruire cose come integratori op-amp . Sono abbastanza facili da costruire anche senza istruzioni formali.
È inoltre possibile memorizzare più stati digitali sullo stesso nodo. Ad esempio, invece di 0-2,5 volt che è uno zero e 2,5-5,0 volt che è uno, è possibile aggiungere un terzo stato tra. Aggiunge molta complessità, e aumenta significativamente la tua suscettibilità al rumore.
Questi sono chiamati qubit e vengono utilizzati nei computer quantistici. Ulteriori informazioni al riguardo sono disponibili sulla voce di Wikipedia . Sono in corso ricerche per rendere tali computer stabili ed economicamente fattibili.
Uno dei motivi per cui utilizziamo i bit è che ci aiuta a memorizzare e recuperare informazioni in modo accurato.
Il mondo reale è analogico, quindi tutte le informazioni che i computer passano o archiviano sono in definitiva analogiche . Ad esempio, una corrente di una tensione specifica su un filo o una carica magnetica di una resistenza specifica su un disco o una fossa di una profondità specifica su un disco laser.
La domanda è: in che misura puoi misurare tali informazioni analogiche ? Immagina che una corrente su un filo possa essere interpretata come qualsiasi numero decimale, come segue:
Ecc. Questo sistema ci permetterebbe di trasmettere molti dati in pochi impulsi di corrente, giusto? Ma c'è un problema: dobbiamo essere molto sicuri di quale sia la tensione. Se la temperatura o i magneti o i raggi cosmici o qualsiasi altra cosa causano delle fluttuazioni, potremmo leggere il numero sbagliato. E più attentamente intendiamo misurare, maggiore è il rischio. Immagina se una differenza di 1 millivolt fosse significativa!
Invece, usiamo generalmente un'interpretazione digitale . Tutto oltre una certa soglia è vero e tutto sotto è falso. Quindi possiamo porre domande del tipo "C'è corrente?" invece di " Esattamente quanta corrente c'è?"
Ogni singolo bit può essere misurato con sicurezza, perché dobbiamo solo "trovarci nel campo giusto". E usando molti bit, possiamo ancora ottenere molte informazioni.
Esistono anche computer ternari anziché binari. http://en.wikipedia.org/wiki/Ternary_computer
Un computer ternario (chiamato anche computer trinario ) è un computer che utilizza la logica ternaria (tre valori possibili) anziché la logica binaria più comune (due valori possibili) nei suoi calcoli ...
Potrebbe benissimo essere più naturale per noi, ma ci sono ragioni specifiche per cui il binario è stato scelto per i circuiti digitali e quindi per i linguaggi di programmazione. Se hai due stati, devi solo distinguere tra due impostazioni volt diciamo 0V e 5V. Per ogni ulteriore aumento della radice (base) dovresti dividere ulteriormente quell'intervallo ottenendo così valori indistinti l'uno dall'altro. Potresti aumentare la gamma di tensione ma questa ha la cattiva abitudine di sciogliere i circuiti.
Se si desidera modificare il tipo di hardware dai circuiti digitali, le opzioni sono più varie. I decimali erano usati nei computer meccanici poiché gli ingranaggi hanno molta più tolleranza al calore e sono molto più distinti delle cariche elettroniche. I computer quantistici come indicato altrove hanno altri modi di trattare le cose. I computer ottici potrebbero anche essere in grado di fare cose che non abbiamo mai affrontato prima e anche i computer magnetici sono una possibilità.
Penso che al giorno d'oggi potresti costruire oggetti che potrebbero contenere qualsiasi quantità di stati o persino lavorare con dati analogici. Sebbene la costruzione di un intero sistema e l'esecuzione di tutti i componenti logici per ottenere un'architettura programmabile e completa rappresenterebbe un sacco di lavoro e un rischio finanziario per qualsiasi azienda intraprendere questo compito.
Penso che ENIAC sia stata l'ultima architettura a utilizzare contatori di anelli a dieci posizioni per memorizzare le cifre. Anche se potrei sbagliarmi su questo e non sono sicuro di quanto ciò abbia influenzato le altre parti della macchina.
La memorizzazione può essere considerata come una trasmissione al futuro, si applicheranno tutti i problemi di trasmissione con supporti continui (analogici).
Memorizzare quegli stati potrebbe essere banale (un interruttore a tre vie o una sorta di griglia) e archiviare fisicamente questi stati è un problema che molte risposte coprono, molto meglio di quanto potrei.
La mia preoccupazione principale è come questo stato memorizzato è codificato e sembra che ci sia un'alta possibilità che questo compito sia una folle commissione, poiché i bit sono sufficienti per la rappresentazione di dati pratici continui, a seconda dell'accuratezza di cui hai bisogno, continua ad aggiungere più bit.
In questo modo è impossibile memorizzare dati veramente continui, ma equazioni per calcolarli ad es
1/3
può essere memorizzato.
Un indizio e una vaga idea sono informazioni più piccole di un po '. Di solito sono necessari diversi indizi per stabilire il valore definito di un bit. Gli inklings sono peggio: non importa quanti ne sommi, non puoi ancora conoscere il valore del bit risultante per certo.
Più seriamente, ci sono logiche multivalore in cui l'unità fondamentale può avere uno di n stati, dove n> 2. Potresti considerare queste unità per trasportare meno informazioni di un po 'nel senso del paragrafo precedente, ma da una teoria dell'informazione punto di vista dovresti dire che portano di più. Ad esempio, occorrerebbero due bit per rappresentare la stessa quantità di informazioni che un singolo valore in una logica a quattro valori potrebbe trasportare.
La base numerica ottimale è e , ma poiché il modo più semplice di rappresentare un numero nell'elettronica digitale è con due stati (alta tensione = 1, bassa tensione = 0), è stata scelta la rappresentazione del numero binario.
e
senza menzionare anche il nat ? Per vergogna.
Esiste un'unità di dati possibile più piccola. Non conosco un nome ufficiale per questo, chiamiamolo un ONU.
Bit è una parola combinata intelligente per "DigIT binario", nel senso che ha due possibili stati. Quindi deve esserci un tipo di cifra con un solo stato possibile.
Vediamo cosa significa. Significa che avresti solo zeri con cui lavorare.
Come conteresti? In qualsiasi sistema x-base, si aumenta il valore fino a quando si esauriscono le cifre e quindi si aggiunge una cifra per formare un numero. Se hai solo una cifra, finiresti immediatamente le cifre così:
Zero = 0 Uno = 00 Due = 000 eccetera
Questo è sicuramente più naturale: di più è di più! Si abbina perfettamente a qualsiasi numero discreto di cose. Quante patate? 00000 Quelle sono quattro patate. Aspetta un minuto ... che è fuori da uno. Se non ti piace, puoi ridefinire il valore da 0 a uno. Quindi è davvero naturale: nessuno zero è nessuno, uno zero è uno, due zeri sono due, eccetera.
Questo non è pratico per una macchina a stato solido. Le cifre dovrebbero essere posizionate e rimosse fisicamente e non si adattano bene.
Non riesco a trovare un riferimento inglese definitivo, ma per quanto mi ricordo dalla classe della teoria dell'informazione, il bit è l'unità fondamentale di informazione. Un po 'di informazioni sono le informazioni che ricevi dopo aver lanciato una moneta giusta (probabilità del 50% per ogni lato). Tutto il resto può essere ridotto a questo.
Anche se si utilizza un dispositivo con più stati, può sempre essere ridotto a bit.