Esiste un'alternativa ai bit come la più piccola unità di dati? Qualcosa che non sarà solo 0 o 1, ma in realtà contiene molti stati possibili in mezzo? Non sarebbe più naturale immagazzinare galleggianti del genere?
Ovviamente è possibile, sia teoricamente che praticamente.
In teoria, ci sono due classi di alternative: i sistemi numerici digitali con una base diversa da 2 (in effetti, il sistema decimale come sappiamo è 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 codifiche decimali piuttosto che la codifica binaria ormai onnipresente; altre basi, ad es. ternario, dovrebbe essere altrettanto fattibile (o non fattibile). Il linguaggio di programmazione esoterico Malbolge si basa su un computer ternario teorico; mentre per lo più satirico, non c'è una ragione tecnica per cui non dovrebbe funzionare. Storicamente, la memorizzazione e l'elaborazione del dominio sono state eseguite su computer analogici, dove è possibile codificare le quantità come frequenze e / o ampiezze di segnali oscillanti e si eseguono calcoli applicando tutti i tipi di modulazioni a questi segnali. Oggi, il calcolo quantico rende nuovamente interessante la teoria delle celle di memorizzazione continua.
In ogni caso, il bit come unità di informazione teorica più piccola è ancora valido, poiché ogni alternativa può codificare più informazioni di un singolo si / no, e nessuno ha ancora trovato un'unità teorica più piccola (e non mi aspetto succederà presto).
In pratica stai 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 la forza man mano che viaggia.
Se sei interessato ad esplorare il calcolo analogico, la maggior parte delle classi "intro all'elettronica" dei sottoscri ti costruiscono cose come op- integratori di amplificatori . Sono abbastanza facili da costruire anche senza istruzione formale.
È inoltre possibile memorizzare più stati digitali sullo stesso nodo. Ad esempio, invece di 0-2,5 volt essendo uno zero e 2,5-5,0 volt uno, è possibile aggiungere un terzo stato intermedio. Aggiunge molta complessità, tuttavia, e aumenta significativamente la tua suscettibilità al rumore.
Uno dei motivi per cui utilizziamo i bit è che ci aiuta a memorizzare e recuperare le informazioni in modo accurato.
Il mondo reale è analogico, quindi tutti i computer informatici passano o si archiviano in modo analogo . Ad esempio, una corrente di una tensione specifica su un filo o una carica magnetica di una forza specifica su un disco o una fossa di una profondità specifica su un disco laser.
La domanda è: con quale precisione puoi misurare le informazioni analogiche ? Immagina che una corrente su un filo possa essere interpretata come qualsiasi numero decimale, come segue:
Ecc. Questo sistema ci permetterebbe di passare molti dati in pochi impulsi di corrente, giusto? Ma c'è un problema: dobbiamo essere molto sicuri di quale sia la tensione. Se la temperatura, i magneti, i raggi cosmici o qualsiasi altra causa causano delle fluttuazioni, potremmo leggere il numero sbagliato. E più finemente intendiamo misurare, maggiore è il rischio. Immagina se una differenza di 1 millivolt fosse significativa!
Al contrario, di solito utilizziamo un'interpretazione digitale . Tutto sopra una certa soglia è vero, e tutto sotto è falso. Quindi possiamo fare domande come "C'è qualche corrente?" invece di " Esattamente quanta corrente c'è?"
Ogni singolo bit può essere misurato con sicurezza, perché dobbiamo solo essere "nel campo giusto". E utilizzando un sacco di bit, possiamo ancora ottenere molte informazioni.
Ci sono anche computer ternari invece di quelli binari. link
A ternary computer (also called trinary computer) is a computer that uses ternary logic (three possible values) instead of the more common binary logic (two possible values) in its calculations...
Potrebbe 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 di volt dire 0V e 5V. Per ogni ulteriore aumento della radice (base) avresti bisogno di dividere ulteriormente quell'intervallo ottenendo così valori che sono indistinti l'uno dall'altro. Potresti aumentare la gamma di voltaggio ma questa cattiva abitudine di circuiti di fusione.
Se si desidera modificare il tipo di hardware dai circuiti digitali, le opzioni sono più varie. I decimali venivano utilizzati nei computer meccanici poiché gli ingranaggi hanno una tolleranza termica maggiore e sono molto più distinti delle cariche di elettroni. I computer quantistici come affermato altrove hanno altri modi di trattare le cose. I computer ottici potrebbero anche essere in grado di fare cose che non abbiamo affrontato prima e computer magnetici sono anche una possibilità.
Penso che al giorno d'oggi sia possibile creare elementi che possano contenere qualsiasi quantità di stati o persino lavorare con dati analogici. Anche se la costruzione di un intero sistema e l'esecuzione di tutti i componenti logici per ottenere un'architettura completa e programmabile sarebbe un sacco di lavoro e un rischio finanziario per qualsiasi azienda intraprendere questa attività.
Penso che ENIAC sia stata l'ultima architettura a utilizzare contatori ad anello a dieci posizioni per memorizzare le cifre. Anche se potrei sbagliarmi su questo e non sono sicuro, quanto questo ha influenzato le altre parti della macchina.
Lo storage può essere pensato come una trasmissione al futuro, tutti i problemi di trasmissione con supporti continui (analogici) si applicano.
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 avrei potuto.
La mia preoccupazione principale è il modo in cui questo stato memorizzato è codificato e sembra che ci sia un'alta possibilità che questa attività sia una commissione errata, dato che i bit sono sufficienti per la rappresentazione di dati continui pratici, a seconda dell'accuratezza necessaria, continuando 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 un inkling sono informazioni più piccole di un bit. Di solito sono necessari diversi indizi per stabilire il valore definito di un bit. Gli Inklings sono peggio: non importa quanti ne aggiungi, non puoi ancora sapere per certo il valore del bit risultante.
Più seriamente, ci sono logiche multi-valore dove l'unità fondamentale può avere uno di n stati, dove n > 2. Potresti considerare queste unità meno informazioni rispetto al paragrafo precedente, ma da un punto di vista della teoria delle informazioni devi dire che ne contengono di più. Ad esempio, avresti bisogno di 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 dal momento che il più semplice modo per rappresentare un numero in elettronica digitale è con due stati (alta tensione = 1, bassa tensione = 0), la rappresentazione del numero binario è stata scelta.
C'è una più piccola unità di dati possibile. Non conosco un nome ufficiale per questo, chiamiamolo un un.
Bit è una parola combo intelligente per "BITR digit", che significa che ha due possibili stati. Quindi ci deve essere un tipo di cifra con un solo stato possibile.
Vediamo cosa significa. Significa che avresti solo zeri con cui lavorare.
Come valuteresti? In qualsiasi sistema x-base, si aumenta il valore finché non si esauriscono le cifre e quindi si aggiunge una cifra per formare un numero. Se si dispone di una sola cifra, si esauriranno immediatamente le cifre:
Zero = 0 Uno = 00 Due = 000 et cetera
Questo è sicuramente più naturale: di più è di più! Si adatta perfettamente a qualsiasi numero discreto di cose. Quante patate? 00000 Quelle sono quattro patate. Aspetta un attimo ... è fuori posto. Se non ti piace, potresti ridefinire il valore di 0 a uno. Allora è davvero naturale: nessuno zero è nessuno, uno zero è uno, due zero 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 definitivo in inglese, ma per quanto ricordo da Classe Teoria delle informazioni il < strong> bit è un'unità di informazioni fondamentale. Un po 'di informazioni sono le informazioni che ricevi dopo aver lanciato una moneta equa (probabilità del 50% per ogni lato). Tutto il resto può essere ridotto a questo.
Anche se utilizzi un dispositivo con più stati, può sempre essere ridotto a bit.
Se tu definisci naturale essendo vicino a come funziona la madre natura, il modo più naturale di codifica delle informazioni sono combinazioni simili al DNA di adenina, citosina, guanina e timina.
Leggi altre domande sui tag floating-point byte bit data binary