Als Webentwickler verstehe ich Binärdaten kaum.
Wenn ich den Satz nehmen „Hallo Welt.“, Wandeln es in binär, und speichern Sie es als binäre in einer SQL - Datenbank, es scheint wie die 1 und 0 würde mehr Platz als die Buchstaben in Anspruch nehmen. Es scheint mir, als ob die Verwendung von Buchstaben einer Komprimierung gleicht, bei der ein Symbol für mehrere steht.
Aber funktioniert das wirklich so?
Benötigt das Speichern von Nur-Text-Daten weniger Platz als das Speichern der entsprechenden Nachricht in Binärform?
Antworten:
Klartext ist binär.
Wenn Sie eine
H
auf eine Festplatte schreiben, schneidet der Schreibkopf nicht zwei vertikale Linien und eine horizontale Linie in den Plattenteller, sondern codiert die Bits01001000
1 magnetisch in den Plattenteller.Daher sollte es offensichtlich sein, dass das Speichern von Nur-Text-Daten genau so viel Platz beansprucht wie das Speichern von Binärdaten.
Klartext ist jedoch nur ein 2 bestimmtes Binärformat
Klartext kann reversibel in andere Binärformate umgewandelt werden. Eine übliche Transformation ist die Komprimierung, die normalerweise zu einer kompakteren Darstellung führt, dh weniger Bits, die zur Darstellung derselben Informationen verwendet werden.
Je nachdem, was Sie mit dem Klartext darstellen, können Sie möglicherweise verschiedene Binärformate verwenden, um die gleichen Informationen darzustellen. Dies kann mehr Platz verbrauchen, es kann weniger verbrauchen.
Zum Beispiel könnten die Zahlen
5
und1234567
im Klartext mit Ziffern dargestellt werden, was zu den folgenden Bitsequenzen auf Platte 3 führt :Alternativ können Sie das 32-Bit -Zweierkomplement verwenden :
Welches ist eine weniger kompakte Darstellung von
5
, aber kompakter Darstellung von1234567
.Und es gibt buchstäblich unendlich viele andere Darstellungen, die ein unterschiedliches Maß an Kompaktheit und Flexibilität aufweisen würden, obwohl in der Praxis weitaus weniger Darstellungen tatsächlich verwendet werden.
1 Angenommen, UTF-8. Die genaue Reihenfolge der Bits für ein Zeichen hängt von der verwendeten Codierung ab.
2 Oder eigentlich mehrere Formate, wenn man die verschiedenen Codierungen berücksichtigt .
3 Wenn Sie sich fragen, was diese acht Nullen an den Enden sind, müssen Sie wissen, wie lang die Daten sind. Die Optionen beschränken sich im Grunde genommen auf einen Marker (ich habe dies über ein Null-Byte verwendet), einen Speicherplatz zum Speichern der Länge (Pascal hat ein Byte zum Speichern der Länge eines Strings verwendet) oder eine feste Größe (im Komplement der folgenden beiden verwendet) Beispiel).
quelle
Ich finde es sehr lustig, darüber nachzudenken. Binär ist nicht 1s und 0s in der Art, wie Sie darüber sprechen.
Stellen Sie sich vor, es gibt eine Menge. Ich kann Ihnen auf viele verschiedene Arten sagen, um welche Menge es sich handelt:
Nine
auf EnglischNeuf
auf Französisch9
in arabischen ZiffernIX
in römischen Ziffern1001
in Binär mit arabischen Ziffernon off off on
in Binär mit ein / aushigh low low high
in Binär dargestellt mit Spannungen oder Hebeln oder Wasserständen oder elektrischer Ladung ... oder englischen Wörtern 'hoch' und 'niedrig'Sie alle repräsentieren dasselbe. Der Punkt hier ist, dass binär nicht 1s und 0s ist, das ist nur eine Möglichkeit, einen Wert darzustellen.
Wenn Sie von der Umwandlung eines H in ein Binärbit sprechen, stellen Sie sich wahrscheinlich vor, Sie würden 10101010 auf dem Bildschirm sehen - aber das ist nicht "binär", das ist eine Ziffer für jedes Binärbit.
Ja, wenn Sie
H
zu "binär" konvertieren , wie die Leute normalerweise darüber sprechen, und dies dann in arabischen Ziffern darstellen und dann speichern, wird mehr Speicherplatz in Anspruch genommen als bei der KonvertierungH
inaitch
.Aber Sie können sehen, dass Binär eine Möglichkeit ist, eine Größe darzustellen, und zwar anhand der Logik, die besagt: "Wenn ich H in Binär umwandle und es so darstelle
high low high low high low high low
, würde es 35 Zeichen dauern! Das ist sogar mehr als10101010
! Aber diese beiden sind 'Binär' .. also wie ist einer größer als der andere?Die andere Seite dieser ist zu fragen , wie die
H
von einem Computer gespeichert ist, und zu sehen , dassH
selbst nur ein Weg , um eine Menge zu repräsentieren - die gleichen Menge72
,01001000
oderseventy two
oder ASCII - ZeichencodeH
. Welche ist die Antwort von 8bittree , dass Klartext ist binär, aber das ist mir , was das zeigen versuchen , Mittel .Sie erhalten also ein kleines Muster in einem Computer
01001000
und was bedeutet das? Alles, was als Zahl, als Teil einer Zip-Datei oder als Charakter bezeichnet werden kann, hängt von der Absicht der Person ab, die es erstellt hat. Wenn Sie wissen, dass es sich um reinen Text handeln soll, stammt er aus einer ZeichenkodierungH
->01001000
und Sie suchen in der Zeichenkodierungstabelle nach dem richtigen Zeichensatz (ASCII, UTF-8, Shift-JIS usw.) Charakter und heraus kommt einH
oder was auch immer. Oder es kommt das falsche Zeichen heraus, wenn Sie eine andere Codierungssuche verwenden als die Person, die es erstellt hat. Dies ist der Link von @Eric Lippert.Aber wenn ich das schreibe und Sie darüber nachdenken,
H
ist es ein Byte und01001000
es sind 8 Byte, ja, das ist mehr Platz. Und ja, es ist (eine Darstellung von) binär. Aber es ist auf einer höheren Abstraktionsebene als der Computer - binär dargestellt in ASCII-Zeichen, wobei jedes Zeichen hinter den Kulissen mit einem binären Bitmuster dargestellt wird, das so groß ist wie dasH
Einzelne.quelle
Nein niemals.
Ihr Computer speichert die Klartextdaten bereits in der entsprechenden Binärdarstellung. Wenn Sie etwas im Klartext- oder Binärformat speichern, wird lediglich angegeben, wie der Computer diesen identischen Binärdatenstrom interpretieren soll .
Das ist irgendwie wahr. Ein Zeichen steht für mehr als ein Bit. Das Problem ist, dass es sich um unterschiedlich große Dinge handelt. Zum Speichern einer 1 oder einer 0 ist nur ein Bit erforderlich, zum Speichern eines Klartextzeichens jedoch 8 Bits (oder mehr). Sie erhalten nichts durch die Verwendung von Zeichen.
Wenn überhaupt , können Sie die Dinge auf die andere Weise komprimieren. Immerhin sind 8 Bit 256 verschiedene mögliche Werte, doch ist Klartext normalerweise auf Buchstaben, Zahlen und einige Satzzeichen beschränkt. Es braucht nicht so viele Bits, wie es braucht.
quelle