Esiste un'alternativa ai bit?


42

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?


8
Avresti bisogno di un'infinità di stati per poter immagazzinare galleggianti arbitrari, quindi questo non sarebbe praticabile.
ChrisF

2
@ChrisF: puoi rappresentare un'infinità di float con un numero limitato di bit?
utente sconosciuto

11
@userunknown - no non puoi. Ecco perché l'aritmetica in virgola mobile è soggetta a errori. Quello che stavo cercando di dire era che avere più stati non avrebbe risolto nulla.
ChrisF

6
Questo potrebbe essere di interesse: thedailywtf.com/Articles/What_Is_Truth_0x3f_.aspx
Chris Cudmore

5
È impossibile rappresentare in modo univoco un numero infinito di galleggianti diversi. Dovresti archiviare una quantità infinita di informazioni per identificare in modo univoco un singolo infinito, che non può essere fatto in una quantità limitata di spazio a causa della fisica . La memorizzazione di informazioni in eccesso rispetto a una determinata quantità in un determinato volume richiede una densità tale che il contenuto verrebbe schiacciato gravitazionalmente a MAX_DENSITY a tempo finito, anche se possono viaggiare a MAX_SPEED (meglio noto come "la velocità della luce"): un nero buco . Vedi en.wikipedia.org/wiki/Bekenstein_bound per le implicazioni di CompSci.

Risposte:


59

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).


17
@Dokkat: l'archiviazione di domini continui, come un nastro analogico, è grande in teoria, ma in pratica soffre di rumore e degrado irrecuperabili, che è uno dei motivi per cui stiamo usando i computer digitali in primo luogo.
martedì

19
Nella teoria dell'informazione è del tutto possibile trasmettere meno di 1 bit di informazioni. L'idea di base è che un bit di dati contiene solo un bit di informazione se entrambi gli stati sono ugualmente probabili. Secondo tale definizione, nel deserto del Sahara la risposta "no" alla domanda "ha piovuto oggi?" contiene meno di 1 bit di informazioni perché è quasi sempre la risposta.
Michael Borgwardt,

9
@Dokkat era comune per modellare quantità analogiche complesse, il computer "digitale" era un sistema di controllo per il computer analogico. In pratica è difficile costruire un circuito analogico con la risoluzione di undouble
Martin Beckett il

5
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.
BlueRaja - Danny Pflughoeft

3
Come dice @tdammers, è difficile far corrispondere anche i galleggianti a precisione singola usando segnali analogici. I float a 32 bit hanno effettivamente 24 bit di precisione; circuiti analogici con rumore paragonabile sono costosi, assetati di energia, lenti e molto sensibili al loro ambiente.
prossima tempesta

26

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.


Un calcolo analogico era abbastanza comune, ma alla fine il digitale può essere più preciso. L'uso di qualche bit in più in memoria per rappresentare un valore è decisamente banale rispetto al tentativo di ridurre il rumore di alcuni dB in meno (3 bit ~ 20 dB) e ad un certo punto (varia in base alla velocità) fisicamente impossibile.
Nick T,

Mi piace l'enfasi qui sull'informatica analogica e sugli esempi. Provenendo da un background strettamente digitale, non vedevo sempre cosa fosse il calcolo analogico. Anche se cercare su Google fornirà molti esempi. Penso di ricordare di aver visto che un prisma "calcola" la trasformata di Fourier, perché divide la luce in entrata nelle sue frequenze costitutive. Lo fa abbastanza velocemente, con energia 0 (nel senso dei requisiti per calcolare l'FT). Naturalmente fare qualcosa con il risultato richiederebbe probabilmente la digitalizzazione.
Paul,

@NickT Norbert Wiener, autore della cibernetica e primo giocatore nel campo della teoria del controllo, ha ricordato nel suo libro che alla fine è stato il costo inferiore dei circuiti binari rispetto all'equivalente analogico che ha causato laboratori, ricercatori e industria optare per il binario
Christophe

20

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.


1
questo mi fa male alla testa leggendo che ...
Ryathal

Non sono sicuro di come funzioni un qubit (lo sto leggendo, quindi lo aggiornerò più avanti), ma so che i qubit sono poco pratici con la tecnologia attuale, mentre questo concetto non lo è. Ad esempio, si potrebbe rappresentare fisicamente il bit "fluttuante" dalla quantità di acqua che riempie un bicchiere e misurarlo usando una bilancia.
Dokkat,

11
Nitpicking: un qubit non contiene stati compresi tra 0 e 1. È ancora 0 o 1, ma può avere più stati contemporaneamente . (Proprio come il gatto di Schrodinger che non è "mezzo morto", ma morto e vivo contemporaneamente)
nikie

7
@Ryathal Questo è in realtà un buon segno: "Chi non è scioccato dalla teoria quantistica non l'ha capito." - Niels Bohr
Dan Neely,

1
Per qualche motivo, immagino sempre i qubit come Tribbles azzurro o rosa.
Wayne Werner,

17

Una questione di precisione

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:

  • Da 1 a 10 volt: 0
  • Da 10 a 20 volt: 1
  • 20-30 volt: 2

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.


1
Per essere onesti, i circuiti digitali devono definire valori misurabili che sono sicuramente veri o falsi e stati intermedi che sono "indefiniti". Nella logica 3.3 / 5V potrebbe essere <0,8 V è falso,> 2,5 V è vero. Il rumore è sicuramente ancora un problema se toglie il segnale da tali intervalli. Ad esempio, il tentativo di abbassare un segnale a un livello basso usando un transistor NPN ti porterà solo da 0,55 a 0,7 V a seconda di determinati fattori. Non c'è molto da giocare. Lo rendi più difficile quando definisci intervalli più definiti.
Scott Whitlock,

2
@ScottWhitlock quelle sono solo specifiche; a meno che il perno è stato progettato per accettare HiZ o simili, sarà essere interpretare l'input come 1 o 0, e che punto può variare in base alla temperatura, produzione batch, tensione di alimentazione, ecc Questo regione definita non è una caratteristica ( sembra che tu possa sfruttarlo per la logica fuzzy).
Nick T,

1
@NickT: la regione indefinita indica che esiste una distorsione maggiore (una tale che la correzione dell'errore normale potrebbe non ripristinarla) ed è necessaria una possibile ritrasmissione.
Lie Ryan,

2
@LieRyan, stai considerando un livello molto più alto di quello che queste specifiche trattano (livello fisico). L'area non definita indica semplicemente che il comportamento (come viene letto il bit) non è definito e non è garantito. Potrebbe ancora funzionare bene.
Nick T


3

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à.


2

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.


2

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.


2

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.


1

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.


Parlando esenza menzionare anche il nat ? Per vergogna.
Ben Voigt,

1
@BenVoigt eh? Che cos'è nat ? :) google mi ha detto alcune cose strane, che non si adattano bene all'argomento.
BЈовић,

@BenVoigt Forse ti riferivi a Nat (informazioni) ? Un nat ... è un'unità logaritmica di informazione o entropia, basata su logaritmi e poteri naturali di e, piuttosto che sui poteri di 2 e logaritmi di base 2 che definiscono il bit.
un CVn

@ MichaelKjörling: Esatto.
Ben Voigt,

0

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.


1
Questo in realtà non si qualifica come un'unità di dati, dato che in pratica hai appena codificato 0 come "non presente" e 1 come 0. Sono ancora bit.
DeadMG

Non è binario, è unario. Il punto è che l'elemento dati ha solo uno stato, non due. La presenza o l'assenza non è uno stato, lo stato dell'elemento è sempre lo stesso, quindi è una cifra unaria. Sto sostanzialmente descrivendo il sistema di tally mark.
Martin Maat,

-1

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.


-1

Se definisci naturale essendo vicino a come funziona la madre natura, il modo più naturale di codificare le informazioni sono combinazioni simili al DNA di adenina, citosina, guanina e timina.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.