Gibt es eine Alternative zu Bits?


42

Gibt es eine Alternative zu Bits als kleinste Dateneinheit? Etwas, das nicht nur 0 oder 1 sein wird, sondern tatsächlich viele mögliche Zustände dazwischen enthält? Wäre es nicht natürlicher, solche Schwimmer aufzubewahren?


8
Sie brauchen unendlich viele Zustände, um beliebige Floats speichern zu können. Dies wäre also nicht praktikabel.
ChrisF

2
@ChrisF: Können Sie eine Unendlichkeit von Floats mit einer begrenzten Anzahl von Bits darstellen?
Benutzer unbekannt

11
@userunknown - nein, das kannst du nicht. Deshalb ist Fließkomma-Arithmetik fehleranfällig. Was ich damit sagen wollte, war, dass mehr Staaten eigentlich nichts lösen würden.
ChrisF


5
Es ist unmöglich, unendlich viele verschiedene Schwimmer eindeutig darzustellen. Sie müssten eine unendliche Menge an Informationen speichern, um einen einzelnen Infinifloat eindeutig zu identifizieren, was aufgrund der Physik nicht auf endlichem Raum möglich ist . Die Speicherung von Informationen über eine bestimmte Menge in einem bestimmten Volumen erfordert eine solche Dichte , dass der Inhalt in endlicher Zeit auf MAX_DENSITY gravitativ zerkleinert wird, selbst wenn er sich mit MAX_SPEED (besser bekannt als "Lichtgeschwindigkeit") fortbewegen kann: ein Schwarz Loch . Informationen zu den Auswirkungen von CompSci finden Sie unter en.wikipedia.org/wiki/Bekenstein_bound .

Antworten:


59

Natürlich ist es sowohl theoretisch als auch praktisch möglich.

Theoretisch gibt es zwei Klassen von Alternativen: digitale Zahlensysteme mit einer anderen Basis als 2 (tatsächlich ist das Dezimalsystem, wie wir es kennen, ein solches System); und nicht digitale Zahlensysteme. Mathematisch gesprochen handelt es sich um diskrete vs. kontinuierliche Domänen.

In der Praxis wurden beide Optionen untersucht. Einige der frühen Digitalcomputer (z. B. ENIAC) verwendeten Dezimalcodierungen anstelle der mittlerweile allgegenwärtigen Binärcodierung. andere Basen, z. B. ternäre, sollten ebenso realisierbar (oder nicht realisierbar) sein. Die esoterische Programmiersprache Malbolge basiert auf einem theoretischen ternären Computer; Obwohl meistens satirisch, gibt es keinen technischen Grund, warum es nicht funktionieren sollte. Die Speicherung und Verarbeitung im kontinuierlichen Bereich wurde in der Vergangenheit auf analogen Computern durchgeführt, auf denen Sie Größen als Frequenzen und / oder Amplituden von oszillierenden Signalen codieren und dann Berechnungen durchführen konnten, indem Sie alle Arten von Modulationen auf diese Signale anwenden. Heute macht das Quantencomputing die Theorie hinter kontinuierlichen Speicherzellen wieder interessant.

So oder so bleibt das Bit als theoretisch kleinste Informationseinheit bestehen, da jede Alternative mehr Informationen als ein einzelnes Ja / Nein codieren kann und noch niemand eine kleinere theoretische Einheit gefunden hat (und ich erwarte nicht, dass dies geschieht irgendwann bald).


17
@Dokkat: Continuous-Domain-Speicher, wie z. B. ein analoges Band, ist in der Theorie großartig, leidet jedoch in der Praxis unter nicht behebbarem Rauschen und einer Verschlechterung, was einer der Gründe ist, warum wir Digitalcomputer verwenden.
tdammers

19
In der Informationstheorie ist es durchaus möglich, weniger als 1 Bit Information zu übermitteln. Die Grundidee ist, dass ein Datenbit nur ein Informationsbit enthält, wenn beide Zustände gleich wahrscheinlich sind. Nach dieser Definition wurde in der Wüste Sahara die Frage "Hat es heute geregnet?" Mit "Nein" beantwortet. enthält weniger als 1 Bit an Informationen, da dies fast immer die Antwort ist.
Michael Borgwardt

9
Früher war @Dokkat für die Modellierung komplexer analoger Größen üblich, der "digitale" Computer war ein Steuerungssystem für den analogen Computer. In der Praxis ist es schwierig, eine analoge Schaltung mit der Auflösung von adouble
Martin Beckett am

5
Some of the early digital computers employed decimal encodings rather than the now ubiquitous binary encoding- Tatsächlich werden heute noch Dezimalcodierungen verwendet. es heißt BCD . Das BIOS in den meisten Computern verwendet es (für dezimalbasierte Datumsangaben) sowie die meisten Billigrechner, da es weniger Schaltkreise erfordert (dh billiger ist) , um alles in BCD zu tun, als es in Binärform und mit a zu tun ist Binär-Dezimal-Umsetzer.
BlueRaja - Danny Pflughoeft

3
Wie @tdammers sagt, ist es schwierig, auch Schwebekörper mit einfacher Genauigkeit mit analogen Signalen abzugleichen. 32-Bit-Floats haben effektiv eine Genauigkeit von 24 Bit. Analoge Schaltungen mit vergleichbarem Rauschen sind teuer, leistungshungrig, langsam und sehr empfindlich gegenüber ihrer Umgebung.
Kommensturm

26

Sie beschreiben im Grunde genommen ein analoges Signal, das in Sensoren verwendet wird, aber selten für interne Berechnungen. Das Problem ist, dass Rauschen die Qualität verschlechtert. Sie müssen einen schwer zu kommunizierenden Referenzpunkt sehr genau kalibrieren, und die Übertragung ist problematisch, da sie mit zunehmender Entfernung an Stärke verliert.

Wenn Sie sich für analoges Rechnen interessieren, können Sie in den meisten Grundkursen zum Thema "Einführung in die Elektronik" beispielsweise Operationsverstärker-Integratoren bauen . Sie sind einfach genug, um auch ohne formelle Anweisung zu bauen.

Sie können auch mehrere digitale Zustände auf demselben Knoten speichern. Beispielsweise können Sie anstelle von 0-2,5 Volt als Null und 2,5-5,0 Volt als Eins einen dritten Zustand dazwischen hinzufügen. Dies erhöht jedoch die Komplexität und die Störanfälligkeit erheblich.


Früher war analoges Rechnen weit verbreitet, aber letztendlich kann digital präziser sein. Die Verwendung einiger mehr Bits im Speicher zur Darstellung eines Wertes ist ausgesprochen trivial im Vergleich zu dem Versuch, das Rauschen um einige dB niedriger (3 Bits ~ 20 dB) und zu einem bestimmten Zeitpunkt (abhängig von der Geschwindigkeit) physikalisch unmöglich zu machen.
Nick T

Ich mag die Betonung hier auf analoges Rechnen und die Beispiele. Ich stamme aus rein digitalen Computerwissenschaften und habe nicht immer verstanden, was analoges Computing ist. Obwohl googeln dafür wird viele Beispiele geben. Ich erinnere mich, dass ein Prisma die Fouriertransformation "berechnet", weil es das einfallende Licht in seine Teilfrequenzen aufteilt. Dies geschieht recht schnell mit 0 Energie (im Sinne der Anforderungen zur Berechnung der FT). Natürlich würde eine Digitalisierung wahrscheinlich erforderlich sein, um etwas mit dem Ergebnis zu tun.
Paul

@NickT Norbert Wiener, der Autor von Kybernetik und der erste Akteur auf dem Gebiet der IT- / Steuerungstheorie, erinnerte in seinem Buch daran, dass es letztendlich die niedrigeren Kosten für Binärschaltungen im Vergleich zu analogen Äquivalenten waren, die Laboratorien, Forscher und die Industrie dazu veranlassten, sich für Binärtechnik zu entscheiden
Christophe

20

Diese werden Qubits genannt und in Quantencomputern verwendet. Weitere Informationen dazu finden Sie im Wikipedia- Eintrag . Es wird geforscht, um solche Computer stabil und wirtschaftlich machbar zu machen.


1
Das macht meinen Kopf weh zu lesen, dass ...
Ryathal

Ich bin mir nicht sicher, wie ein Qubit genau funktioniert (ich lese es, damit ich es später aktualisiere), aber ich weiß, dass Qubits mit der aktuellen Technologie unpraktisch sind, obwohl dieses Konzept es nicht ist. Beispielsweise könnte man das "schwimmende" Bit physikalisch durch die Menge an Wasser darstellen, die ein Glas füllt, und es unter Verwendung einer Waage messen.
Dokkat

11
Nitpicking: Ein Qubit enthält keine Zustände zwischen 0 und 1. Es ist immer noch 0 oder 1, aber es kann mehrere Zustände gleichzeitig haben . (Genau wie Schrödingers Katze, die nicht "halb tot" ist, sondern gleichzeitig tot und lebendig)
Nikie

7
@Ryathal Das ist eigentlich ein gutes Zeichen: "Wer nicht von der Quantentheorie geschockt ist, hat es nicht verstanden." - Niels Bohr
Dan Neely

1
Aus irgendeinem Grund stelle ich mir Qubits immer als hellblaue oder rosa Tribbles vor.
Wayne Werner

17

Eine Frage der Genauigkeit

Ein Grund, warum wir Bits verwenden, ist, dass es uns hilft, Informationen genau zu speichern und abzurufen.

Die reale Welt ist analog, daher sind alle Informationen, die Computer weitergeben oder speichern, letztendlich analog . Zum Beispiel ein Strom mit einer bestimmten Spannung an einem Draht oder eine magnetische Ladung mit einer bestimmten Stärke an einer Scheibe oder eine Vertiefung mit einer bestimmten Tiefe an einer Laserscheibe.

Die Frage ist: Wie genau können Sie diese analogen Informationen messen ? Stellen Sie sich vor, ein Strom auf einer Leitung könnte wie folgt als eine beliebige Dezimalzahl interpretiert werden:

  • 1 bis 10 Volt: 0
  • 10 bis 20 Volt: 1
  • 20 bis 30 Volt: 2

Dieses System würde es uns ermöglichen, eine Menge Daten in ein paar Stromimpulsen weiterzuleiten, oder? Aber es gibt ein Problem: Wir müssen sehr sicher sein, wie hoch die Spannung ist. Wenn Temperatur, Magnete, kosmische Strahlung oder was auch immer Schwankungen verursachen, können wir die falsche Zahl ablesen. Und je genauer wir messen wollen, desto größer ist das Risiko. Stellen Sie sich vor, ein 1-Millivolt-Unterschied wäre signifikant!

Stattdessen verwenden wir normalerweise eine digitale Interpretation . Alles über einer Schwelle ist wahr und alles unter ist falsch. Wir können also Fragen stellen wie "Gibt es überhaupt Strom?" statt " Genau wie viel Strom gibt es?"

Jedes einzelne Bit kann mit Zuversicht gemessen werden, da wir nur "im richtigen Ballpark" sein müssen. Und wenn wir viele Bits verwenden, können wir immer noch viele Informationen erhalten.


1
Um fair zu sein, müssen digitale Schaltkreise messbare Werte definieren, die definitiv wahr oder falsch sind, sowie Zwischenzustände, die "undefiniert" sind. In der 3,3 / 5-V-Logik kann es sein, dass <0,8 V falsch sind,> 2,5 V wahr sind. Rauschen ist sicherlich immer noch ein Problem, wenn das Signal außerhalb dieser Bereiche liegt. Wenn Sie beispielsweise mit einem NPN-Transistor versuchen, ein Signal auf einen niedrigen Pegel zu bringen, werden Sie abhängig von bestimmten Faktoren nur auf 0,55 bis 0,7 V abgesenkt. Nicht viel zu spielen. Sie machen es nur schwieriger, wenn Sie mehr definierte Bereiche definieren.
Scott Whitlock

2
@ScottWhitlock das sind nur Spezifikationen; Wenn der Pin nicht für die Aufnahme von HiZ oder Ähnlichem ausgelegt ist, wird der Eingang als 1 oder 0 interpretiert. Dieser Punkt kann je nach Temperatur, Fertigungslos, Versorgungsspannung usw. variieren. Dieser undefinierte Bereich ist kein Merkmal ( Sie scheinen vorzuschlagen, dass Sie es für die Fuzzy-Logik nutzen könnten).
Nick T

1
@NickT: Die undefinierte Region zeigt an, dass eine starke Verzerrung vorliegt (eine, die so stark ist, dass die normale Fehlerkorrektur sie möglicherweise nicht wiederherstellt), und eine mögliche erneute Übertragung ist erforderlich.
Lie Ryan

2
@LieRyan, Sie erwägen ein viel höheres Niveau als das, womit sich solche Spezifikationen befassen (physikalische Schicht). Der undefinierte Bereich bedeutet lediglich, dass das Verhalten (wie das Bit gelesen wird) undefiniert und nicht garantiert ist. Es könnte immer noch gut funktionieren.
Nick T


3

Es mag für uns natürlicher sein, aber es gibt bestimmte Gründe, warum Binär für digitale Schaltungen und damit für Programmiersprachen gewählt wurde. Wenn Sie zwei Zustände haben, müssen Sie nur zwischen zwei Volt-Einstellungen unterscheiden, z. B. 0V und 5V. Für jede weitere Erhöhung des Radix (der Basis) müssten Sie diesen Bereich weiter aufteilen, um Werte zu erhalten, die nicht voneinander zu unterscheiden sind. Sie könnten den Spannungsbereich erhöhen, aber das hat die unangenehme Angewohnheit, Schaltkreise zu schmelzen.

Wenn Sie den Hardwaretyp für digitale Schaltungen ändern möchten, stehen Ihnen vielfältigere Optionen zur Verfügung. Dezimalstellen wurden früher in mechanischen Computern verwendet, da Zahnräder eine viel höhere Wärmetoleranz aufweisen und viel ausgeprägter sind als Elektronenladungen. Quantencomputer haben, wie an anderer Stelle erwähnt, andere Möglichkeiten, mit Dingen umzugehen. Optische Computer sind möglicherweise auch in der Lage, Dinge zu tun, mit denen wir uns zuvor nicht befasst haben, und magnetische Computer sind ebenfalls eine Möglichkeit.


2

Ich denke, Sie könnten heutzutage Objekte bauen, die eine beliebige Anzahl von Zuständen enthalten oder sogar mit analogen Daten arbeiten. Ein komplettes System aufzubauen und alle logischen Komponenten zum Laufen zu bringen, um eine voll funktionsfähige und programmierbare Architektur zu erhalten, wäre eine Menge Arbeit und ein finanzielles Risiko für jedes Unternehmen, diese Aufgabe zu übernehmen.

Ich denke, ENIAC war die letzte Architektur, die Ringzähler mit zehn Positionen zum Speichern von Ziffern verwendete. Obwohl ich mich irren könnte und nicht sicher bin, wie sehr dies die anderen Teile der Maschine beeinflusste.


2

Die Speicherung kann als Übertragung in die Zukunft betrachtet werden, alle Übertragungsprobleme mit kontinuierlichen (analogen) Medien werden auftreten.

Das Speichern dieser Zustände könnte trivial sein (ein Drei-Wege-Schalter oder eine Art Gitter) und das physische Speichern dieser Zustände ist ein Thema, das von vielen Antworten abgedeckt wird, viel besser als ich.

Mein Hauptanliegen ist, wie dieser gespeicherte Zustand codiert wird, und es scheint, dass es eine hohe Wahrscheinlichkeit gibt, dass diese Aufgabe eine Narrenaufgabe ist, da Bits für die Darstellung praktischer kontinuierlicher Daten ausreichen, abhängig von der Genauigkeit, die Sie benötigen, fügen Sie immer mehr Bits hinzu.

Wirklich kontinuierliche Daten können auf diese Weise nicht gespeichert werden, aber Gleichungen, um sie zu berechnen, z

1/3

kann aufbewahrt werden.


2

Ein Hinweis und eine Ahnung sind kleinere Informationen als ein bisschen. In der Regel sind mehrere Hinweise erforderlich, um den endgültigen Wert eines Bits zu ermitteln. Inklings sind schlimmer: Egal wie viele Sie addieren, Sie können den Wert des resultierenden Bits immer noch nicht genau kennen.

Im Ernst, es gibt mehrwertige Logiken, bei denen die Grundeinheit einen von n Zuständen haben kann, wobei n> 2 ist. Sie könnten diese Einheiten so betrachten, dass sie weniger Informationen enthalten als ein Bit im Sinne des vorhergehenden Absatzes, aber aus einer Informationstheorie Aus der Sicht müsste man sagen, dass sie mehr tragen. Beispielsweise benötigen Sie zwei Bits, um die gleiche Menge an Informationen darzustellen, die ein einzelner Wert in einer vierwertigen Logik enthalten könnte.


1

Die optimale numerische Basis ist e , aber da der einfachste Weg zur Darstellung einer Zahl in der digitalen Elektronik zwei Zustände aufweist (hohe Spannung = 1, niedrige Spannung = 0), wurde die Darstellung einer binären Zahl gewählt.


Apropos, eohne auch das Nat zu erwähnen ? Zum Schämen.
Ben Voigt am

1
@BenVoigt huh? Was ist nat ? :) google hat mir ein paar komische sachen erzählt, die nicht gut in das thema passen.
BЈовић

@BenVoigt Vielleicht hast du dich auf Nat bezogen (Information) ? Ein nat ... ist eine logarithmische Informationseinheit oder Entropie, die auf natürlichen Logarithmen und Potenzen von e basiert und nicht auf den Potenzen von 2 und Basis-2-Logarithmen, die das Bit definieren.
ein Lebenslauf

@ MichaelKjörling: Genau das ist es.
Ben Voigt

0

Es gibt eine kleinere mögliche Dateneinheit. Ich kenne keinen offiziellen Namen dafür, nennen wir es ein un.

Bit ist ein intelligentes Kombinationswort für "Binary digIT", dh es hat zwei mögliche Zustände. Es muss also eine Art Ziffer mit nur einem möglichen Zustand geben.

Mal sehen, was das bedeutet. Es bedeutet, dass Sie nur mit Nullen arbeiten müssen.

Wie würdest du zählen? In jedem x-base-System erhöhen Sie den Wert, bis Ihnen die Ziffern ausgehen, und fügen dann eine Ziffer hinzu, um eine Zahl zu bilden. Wenn Sie nur eine Ziffer haben, würden Ihnen sofort die Ziffern ausgehen.

Null = 0 Eins = 00 Zwei = 000 usw.

Das ist definitiv natürlicher: mehr ist mehr! Es ist perfekt auf eine beliebige Anzahl von Dingen abgestimmt. Wie viele Kartoffeln? 00000 Das sind vier Kartoffeln. Warten Sie eine Minute ... das ist nacheinander. Wenn Ihnen das nicht gefällt, können Sie den Wert von 0 auf 1 ändern. Dann ist es ganz natürlich: keine Null ist keine, eine Null ist eine, zwei Null ist zwei, und so weiter.

Dies ist jedoch für eine Festkörpermaschine unpraktisch. Ziffern müssten physisch platziert und entfernt werden, und sie lassen sich nicht gut skalieren.


1
Dies ist jedoch nicht wirklich eine Dateneinheit, da Sie im Grunde nur 0 als "nicht vorhanden" und 1 als 0 codiert haben. Sie sind immer noch Bits.
DeadMG

Es ist nicht binär, es ist unär. Der Punkt ist, dass das Datenelement nur einen Zustand hat, nicht zwei. Anwesenheit oder Abwesenheit ist kein Zustand, der Zustand des Elements ist immer derselbe, daher ist es eine unäre Ziffer. Ich beschreibe im Grunde das Zählmarkensystem.
Martin Maat

-1

Ich kann keine endgültige englische Referenz finden, aber soweit ich mich an Information Theory Class erinnere, ist das Bit eine grundlegende Informationseinheit. Ein bisschen Information ist die Information, die Sie erhalten, nachdem Sie eine faire Münze geworfen haben (50% Wahrscheinlichkeit für jede Seite). Alles andere kann darauf reduziert werden.

Selbst wenn Sie ein Gerät mit mehreren Status verwenden, kann es immer auf Bits reduziert werden.


-1

Wenn Sie natürlich definieren, indem Sie der Funktionsweise von Mutter Natur nahe kommen, sind DNA-ähnliche Kombinationen von Adenin, Cytosin, Guanin und Thymin die natürlichste Art der Informationskodierung.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.