Auf der Suche nach Erläuterungen zur binären Präfixlogik / -historie im Vergleich zum SI-Präfix

2

Kürzlich habe ich mich mit den SI- und Binärpräfixen befasst, die allgemein für digitale Speicherung / Computing verwendet werden, und ich bin mir immer noch nicht sicher, ob ich die Logik hinter dem Binärpräfix verstehe (aktuelle Frage unten).

Aktuelles Verständnis (zusammengefasst):

SI:

Scheint ganz einfach, jedes Mal, wenn Sie am Ende "Gesamtzahl der Bytes == aktueller Präfixwert * 1.000" haben: Verwenden Sie das nächstgrößere Präfix, das als "1000 ^ 1 + Anzahl der bereits verwendeten SI-Präfixe" ausgedrückt werden kann bei kilo '. Einfach genug.

Binär:

Anscheinend funktioniert der Speicher besser / einfacher, wenn Dateneinheiten mit Zweierpotenzen verwendet werden (die Erklärung für die Systemarchitektur geht mir ehrlich gesagt über den Kopf, also nehme ich einfach ihr Wort dafür). In den Anfängen der Computer vor der offiziellen Einrichtung von Binärpräfixen, einer Maschine mit 1024 Byte Speicher (dies wäre die kleinste Speicherkapazität bei einer Potenz von 2, die 1000 Byte bricht), entschieden sich die Designer für die Verwendung der bereits eingerichteten SI Standard und beschreiben diese Menge an Speicher als kB, obwohl sie tatsächlich nicht gleich waren (es war mehr oder weniger "nah genug").

Hier beginnt mein Verständnis zusammenzubrechen. Ich schätze, da die SI-Standards mit der Formel (Basis 1000 ^ 1 + verwendetes Präfix #) zum nächsten Präfix "aufsteigen", ist das Äquivalent in Binary (Basis 1024 ^) 1 + verwendetes Präfix #), da 1024 mit Potenzen von 2 näher an 1000 als 512 oder 2048 liegt und daher enger mit der SI-Formel zusammenhängt.

Aktuelle Frage:

Also, wenn das richtig ist, warum zu diesem Zeitpunkt überhaupt Binärpräfixe verwenden? Ist es wirklich so 'schlecht', nur '1.024 kB' anstelle von 1 KiB (oder welcher Einheit auch immer, die Sie messen) zu sagen? Ich nehme an, 4 GiB RAM aufzulisten, da 4.29497 GB ein bisschen doof ist (Ist das der Grund? Es ist einfach einfacher, gerundete Zahlen zu verwenden?). Das und ist mein allgemeines Verständnis dieser Präfixstandards korrekt?

Jede Klarstellung wird gebeten, danke für das Lesen.

Joe
quelle
Was genau ist deine Frage? „Warum überhaupt Binärpräfixe verwenden?“ Ernsthaft? K bedeutet 1000, M bedeutet 1.000.000 usw. (aus dem Lateinischen). Sie wurden verwendet, um 1024, 1024² usw. zu bedeuten, weil sie "nah genug" waren - aber je höher Sie gehen, desto größer ist die Diskrepanz. Die Menschen haben die binären Begriffe eingeführt, um Formalismen zu schaffen, die die informelle Verwendung der Begriffe ersetzen. Es scheint, dass Sie die Antwort kennen. Glauben Sie wirklich, dass es in Ordnung ist, 2³² (dh 2 ^ 32) als 4,29497 G zu bezeichnen (was immer noch nur eine Näherung ist; der genaue Wert ist 4,294967296 G), wenn Sie sich genau auf 4 Gi beziehen können ?
Scott
@Scott: Dein Punkt zur Rundung ist gut aufgenommen. Ich nehme an, ich habe es mit Situationen zu tun, in denen beispielsweise ein Verbraucher eine 500-GB-Festplatte kauft und sich dann in Windows erkundigt, warum er nicht über 500 GB Speicher verfügt, da Windows auch GB auflistet, wenn GiB angezeigt wird. Oder wie Ram diese Liste "4 GB", wenn sie auch 4 GB bedeuten. Im Wesentlichen scheint es, dass in der praktischen Anwendung der Binärstandard ignoriert wird und wenn GiB als GB angezeigt wird, rundet die Person, die die Spezifikation schreibt, bereits die Anzahl der Bits. Warum nicht einfach den einen oder anderen Standard verwenden, wenn wir den einen oder anderen ignorieren?
Joe

Antworten:

2

Nun, wir verwenden die SI- Begriffe (alias Dekadisch oder Metrisch ), weil sie die richtigen Begriffe für Gewichte und Maße sind (ein Kilogramm = 1000 Gramm, ein Kilometer = 1000 Meter usw.) und weil es sie schon lange gibt (Die Kilo- und Milli- Präfixe wurden im 18. Jahrhundert eingeführt und stammen aus dem Griechischen und Lateinischen, die vor 2K Jahren verwendet wurden [har har]). Wir verwenden die binären Ausdrücke, wenn sie angemessen sind (in Computerkontexten), da sie in diesen Kontexten die richtigen Ausdrücke sind.

Aber die binären Terme wurden vor weniger als 20 Jahren eingeführt und vor weniger als 10 Jahren formalisiert . Und es sind keine neuen Begriffe, die mit neuen Konzepten einhergehen (wie zum Beispiel „Laser“). Sie sind neue Begriffe für etablierte Konzepte (für die die falschen Wörter verwendet wurden). Daher werden sie nur langsam verstanden (weil viele Leute die alten Begriffe immer noch falsch verwenden).

Was mich erinnert: Sie scheinen diesbezüglich verwirrt zu sein. Wenn jemand "4 GB" sagt, wenn er 4.294.967.296 Byte meint, "rundet" er die Zahl nicht, weil er nicht "4.294967296 GB" meint. Er bedeutet "4 GiB" und verwendet den falschen Begriff. Weil er die neuen Begriffe noch nicht gelernt hat oder weil er nicht versteht, warum der Unterschied wichtig ist, oder weil er befürchtet, dass die Leute, mit denen er spricht, "GB" verstehen, aber nicht "GiB". Das System der binären Terme wird nicht ignoriert. Es ist immer noch dabei, gelernt, akzeptiert und adoptiert zu werden .

Dies wird ausführlich in Wikipedia behandelt. Zum Beispiel im Binärpräfixartikel :

Die Computerindustrie hat in der Vergangenheit die Einheiten Kilobyte , Megabyte und Gigabyte sowie die entsprechenden Symbole KB, MB und GB in mindestens zwei geringfügig unterschiedlichen Messsystemen verwendet. In Bezug auf die Hauptspeicherkapazität (RAM) bedeutet Gigabyte üblicherweise 1 073 741 824 Byte. Da dies die dritte Potenz von 1024 ist und 1024 eine Potenz von zwei (2 10 ), wird diese Verwendung als binäres Präfix bezeichnet.

In den meisten anderen Zusammenhängen verwendet die Industrie die Multiplikatoren Kilo , Mega , Giga usw. in einer Weise, die ihrer Bedeutung im Internationalen Einheitensystem (SI) entspricht, nämlich als Potenzen von 1000. Zum Beispiel eine 500-Gigabyte-Festplatte Enthält 500.000.000.000 Bytes und eine 1-Gbit / s-Ethernet-Verbindung (Gigabit pro Sekunde) überträgt Daten mit 1.000.000.000 Bit / s. Im Gegensatz zur Binärpräfixverwendung wird diese Verwendung als Dezimalpräfix bezeichnet , da 1000 eine Potenz von 10 (10 3 ) ist.

Die Verwendung der gleichen Einheitenpräfixe mit zwei unterschiedlichen Bedeutungen hat zu Verwirrung geführt. Ab 1998 haben die International Electrotechnical Commission (IEC) und mehrere andere Normungs- und Handelsorganisationen die Mehrdeutigkeit behoben, indem sie Normen und Empfehlungen für eine Reihe von Binärpräfixen veröffentlicht haben, die sich ausschließlich auf Potenzen von 1024 beziehen. Dementsprechend das US National Institute of Standards and Technology (NIST) erfordert, dass SI-Präfixe nur im Dezimalsinn verwendet werden: [1] Kilobyte und Megabyte bezeichnen eintausend Bytes bzw. eine Million Bytes (in Übereinstimmung mit SI), während neue Begriffe wie Kibibyte und Mebibyte verwendet werdenund Gibibyte mit den Symbolen KiB, MiB und GiB bezeichnen 1024 Bytes, 1 048 576 Bytes bzw. 1 073 741 824 Bytes. [2]   2008 wurden die IEC-Präfixe in die Norm IEC 80000-13 aufgenommen .

[Vermutlich verwendet Wikipedia die Konvention, große Dezimalzahlen mit dreistelligen Gruppen zu schreiben, die durch Leerzeichen voneinander getrennt sind, um die Menschen zu respektieren, die sie .anstelle ,eines Tausendertrennzeichens verwenden.]

Ähnliche Absätze erscheinen auch auf anderen Seiten. Im metrischen Präfix :

In einigen Bereichen der Informationstechnologie war es im Gegensatz zu den Definitionen im Internationalen Einheitensystem (SI ) üblich, für einige SI-Präfixe (Kilo, Mega, Giga) nicht-dezimale Vielfache basierend auf Potenzen von 1024 anstelle von 1000 zu bezeichnen ). Diese Praxis wurde von einigen Branchenverbänden, einschließlich JEDEC, sanktioniert . Die Internationale Elektrotechnische Kommission (IEC) hat das System der Binärpräfixe (Kibi, Mebi, Gibi usw.) für diesen Zweck standardisiert . [23]

Und in Kilo- :

Eine zweite Definition wurde in einigen Bereichen der Informatik und Informationstechnologie gebräuchlich, was jedoch nicht mit der SI-Definition vereinbar ist.  Aufgrund des mathematischen Zusammentreffens, dass 2 10 ungefähr 10 3 ist, wird Kilo als 2 10 = 1024 verwendet . Der Grund für diese Anwendung ist, dass Binärwerte, die beim Berechnen nativ verwendet werden, die Basis 2 sind und nicht die Basis 10, die für die SI-Präfixe verwendet wird . Das NIST kommentiert diese Verwirrung wie folgt: „Angesichts dieser Realität hat das IEEE Standards Boardbeschlossen, dass die IEEE-Standards die konventionellen, international übernommenen Definitionen der SI-Präfixe verwenden werden “, statt Kilo für 1024. [4]

Weitere Wikipedia-Ressourcen:

Dies wurde auch bei Super Usern behandelt, bevor:

Und zum Lachen, sieh dir diesen xkcd-Comic an : (aber nimm es natürlich nicht ernst).
   

Scott
quelle
Wow, sehr gründlicher Beitrag. Vielen Dank für die Klarstellung, ich schätze den Aufwand sehr. Ein letzter Hinweis zum 'Runden', um das 4-GB-Beispiel zu verdeutlichen: Ich spreche von Situationen wie dem Lesen von Ram-Spezifikationen auf der Website eines Herstellers. Sie listeten den Ram mit '4GB' auf. Ich bin mir sicher, dass sie es tun, weil sie wissen, dass die meisten Verbraucher nicht wissen, was GiB bedeutet, und dennoch 4,1 GB auf die Spezifikation setzen können (scheint etwas zu sein, das die Marketingabteilung tun würde, weil "mehr ist besser"). Trotzdem wird es immer noch als 4 GB aufgeführt. Ich erkläre das wahrscheinlich nicht gut, aber Ihre Erklärung dafür ist gut aufgenommen.
Joe
Auch dieser Comic ist großartig.
Joe