Was ist der Ursprung von K = 1024? [geschlossen]

73

Warum besteht die Diskrepanz in der Anzahl der Bytes in einem Kilobyte? An einigen Stellen habe ich die Zahl 1024 (2 10 ) gesehen, an anderen 1000 (und der Unterschied wird mit M, G, T usw. immer größer).

Dies ist keine Diskussion darüber, ob es 1024 oder 1000 sein sollte (obwohl Sie es in den Kommentaren diskutieren können), sondern darüber, wo / wann diese Situation entstand und / oder sich verbreitet hat.

Soweit ich weiß, verwenden Linux- und Hardware-Hersteller niemals die 1024-Variante. Das und das Hörensagen lassen mich denken, dass MS-DOS diese Version verbreitet hat, aber was sind die Fakten?

Bart van Heukelom
quelle
23
Eine Darstellung ist binär (2 ^ 10 oder 1024), während die andere dezimal (10 ^ 3 oder 1000) ist ...
Trezoid
13
Wenn Sie nach bestimmten Schuldigen suchen, wenden Sie sich an die Festplattenhersteller. Es lässt ihre Geräte so aussehen, als hätten sie mehr Kapazität, wenn dies in Dezimal-MB, GB usw. ausgedrückt wird. Ich glaube, sie haben dies immer getan, aber bis vor kurzem ist die Lücke zwischen Dezimal und Binär groß genug geworden von Bedeutung sein.
LawrenceC
23
@ultrasawblade: Sie möchten den Festplattenherstellern vorwerfen, eine der wenigen Gruppen zu sein, die den Begriff gigabyterichtig verwenden?
Paradroid
13
Es schien mir nur immer eine verstandene Sache zu sein, dass 1K = 1024 mit irgendetwas, das sich auf Computer bezog, bevor 20 GB oder so Festplatten an der Tagesordnung waren. Dies stimmt ungefähr mit der Zeit überein, in der viele Nicht-Techniker regelmäßig mit dem Umgang mit PCs begannen. Riesige Mengen an Computerliteratur (technisch und nichttechnisch) aus den frühen 90ern und früher erwähnen nichts über "dezimale" KBs oder "Kibibytes".
LawrenceC
13
@paradroid: Gigabyte bedeutete ursprünglich 1024 MB (und MB = 1024 KB usw.). Es wurde neu verbunden, um 1000 zu bedeuten, weil HDD-Hersteller darauf bestanden, es falsch zu verwenden. Zugegeben, das hängt davon ab, was Sie für "richtig" halten, denn Kilo bedeutet 1000, aber in der Informatik waren Kilobyte aus technischen Gründen immer 1024, bis sie 1999 geändert wurden.
James,

Antworten:

63

Es geht eine ganze Weile zurück und wird hier detailliert beschrieben . Anscheinend können Sie IBM die Schuld geben, wenn jemand.

Wenn ich noch einmal darüber nachdenke, würde ich den Amerikanern als Ganzes die Schuld geben, dass sie das Système international d'unités offen missachten : P

paradroid
quelle
31
Es ist immer leicht, den Amerikanern die Schuld zu geben.
Notinlist
13
@Notinlist: Es ist ein Witz.
Paradroid
5
Es erinnert mich an eine epische Szene des Pulp-Fiction-Films ... Die mit der Frage nach dem "metrischen System". :-)
Pierre Watelet
7
@Notinlist Es ist leicht, den Amerikanern immer die Schuld zu geben. Deshalb machen wir so viel. Das und die Tatsache, dass es Spaß macht.
Singletoned
3
Der dortige Eintrag von 1961 ist insofern interessant, als er "65k" erwähnt - wobei es sich um die erste Größenordnung handelt, die einen deutlichen Unterschied zwischen "k = 1024" und "k = 1000, gerundet" aufweisen kann, und für letztere deutlich gesenkt wird. Im Jahr 1964 hingegen verwendet jeder die binären Bedeutungen.
Random832
26

Das gesamte Computing war anfangs auf niedrigem Niveau. Und bei der Programmierung auf niedriger Ebene ist die Zahl "1000" völlig nutzlos, und sie benötigten Präfixe für größere Mengen, damit sie die SI-Werte wiederverwendeten. Jeder wusste es auf dem Feld, es gab keine Verwirrung. Es hat 30 Jahre gedient oder wer weiß.

Es ist nicht so, dass sie Amerikaner waren, also mussten sie SI um jeden Preis brechen. :-)

Es gibt keinen Programmierer, den ich kenne und der kibibyte sagt. Sie sagen Kilobyte und meinen 1024 Bytes. Algorithmen stecken voller Potenzen von 2. Noch heute ist "1000" eine wirklich nutzlose Zahl zwischen Programmierern.

Kibi und Mibi zu sagen ist einfach zu lustig und lenkt die Aufmerksamkeit des Themas. Wir geben es gerne an die Telekommunikations- und Plattenspeicherbranche weiter :-). Und ich werde Kibibytes auf Benutzeroberflächen schreiben, auf denen Nicht-Programmierer sie lesen können.

Notinlist
quelle
3
Es ist noch lustiger zu sagen, wenn es um Bits geht - "mibibit"
James
3
Ich denke, KiB usw. soll ausgesprochen Kilobinarybyte usw. und nicht Kibibyte sein.
Lie Ryan
2
@Lie Ryan, Präfixe wie "kilobinarybyte" zu verwenden, war ein Vorschlag, der letztendlich fehlschlug und andere Abkürzungen hatte als Kibibyte. Siehe en.wikipedia.org/wiki/Binary_prefix
Ben Lee
3
Wäre es also fair, km als Kilodezimalmeter auszusprechen?
JustJeff
3
Die Zahl 1000 ist nicht "völlig nutzlos". "k = 1000" wird seit den 1950er Jahren in der Datenverarbeitung verwendet. Die ersten Computer waren eigentlich Dezimalrechner, keine Binärrechner. Die Netzwerkgeschwindigkeit wurde immer in Vielfachen von 1000 gemessen. "Es hat 30 Jahre gedient"? "Ja wirklich?" Seit mindestens 43 Jahren beschweren sich Programmierer über "k = 1024". en.wikipedia.org/wiki/Timeline_of_binary_prefixes
Endolith
8

In vielen Fällen ist es richtig und sinnvoll, dass technische Mitarbeiter 1024 = 1 KB verwenden.

Für Endbenutzer ist es normalerweise besser, 1000 = 1k zu sagen, da jeder an das 10-basierte Zahlensystem gewöhnt ist.

Das Problem ist, wo die Grenze gezogen werden soll. Manchmal gelingt es Marketing- oder Werbeleuten nicht wirklich, die "Übersetzung" oder die technischen Daten und die Sprache an die Endbenutzer anzupassen.

mit
quelle
13
Technische Menschen sollten wissen , dass 1024 Byte ist wirklich ein Kibibyte (KiB), aber wissen , dass der Begriff ist nicht von technisch nicht versierten Personen bekannt.
Paradroid
8
Wer sagt, dass es richtig ist? Kilo bedeutet seit Jahrhunderten 1000, daher hätten sie es laut IMO niemals für 1024 verwenden dürfen.
Bart van Heukelom
20
Das Byte ist keine SI-Einheit. KB bedeutet "Kilobel" (Zugegeben, eine Einheit, die Sie niemals verwenden würden, wenn Sie nicht den Klang beschreiben würden, der vom Urknall erzeugt wird.)
Wooble
10
@njd: Der C64 verfügt über 65536 Byte RAM. Standardmäßig wird die Speichergröße in KB, die Datenübertragungsrate in KB und der Massenspeicher in den von den Herstellern empfohlenen Byte angegeben. Festplatten verwenden T, G, M und k auf dem Etikett, Windows gibt die Größe in Ti, Gi, Mi und ki an. Und diese 1,44 MB Floppys? Das sind weder 1,44 MB noch 1,44 MB, es sind 1,44 Kilokibibyte. Das sind 1440 KB oder 1'474'560 Byte.
Dritter
5
Die kiB, etc Varianten sind allerdings ziemlich neu. Ich glaube nicht, dass sie in Gebrauch waren, als dieses Problem auftrat - ich hatte den Eindruck, dass sie genau dafür gemacht wurden, es zu lösen!
Shinrai
3

Halbleiterhersteller beschuldigen (sie stellen uns nur binäre Hardware zur Verfügung) [1]

Besser noch: Schuldlogik selbst (binäre Logik ist nur die elementarste Logik).

Besser noch: Wen sollen wir für das elende Dezimalsystem verantwortlich machen ?

Es hat weit mehr Mängel als das binäre System. Es beruhte Husten auf der durchschnittlichen Anzahl von Fingern bei der menschlichen Hustenart

Oooo ...

[1] Ich möchte meinen Quanten-Drei-Qubit-Computer !!! Jetzt!

sehe
quelle
29
Ich denke, Sie werden feststellen, dass die durchschnittliche Anzahl der Finger weniger als 10 beträgt. </ Pedant>
Rory Alsop
1
@Rory: ^ Das war ein gutes Lachen
Mehrdad
2
@Rory: "less" </ pedant>. Oder ist es? Moment
mal
1

1024 ist nicht zu beanstanden, es ist in der Tat eine sehr gute Sache, da Computer (digital) so schnell und effizient sein können wie heute. Da der Computer nur den 2-Wert (0,1) verwendet, werden die Schwierigkeiten und die Komplexität (Ungenauigkeit) des anologischen Systems aus der Gleichung gestrichen.

Es wäre komplizierter, wenn wir sagen würden, dass ein Kilobyte 1000 Bit ist, weil 2 zu welcher Potenz 1000 ist? Selbst 1 Kilobyte wäre also ungenau, weil es Gleitpunkte oder eine Annäherung hat.

Aber ich beschuldige Marketing in hohem Maße, 8 Gigabyte * verkauft zu haben und dies im Kleingedruckten zu vermerken

* 1 gigabyte is 1,000,000,000 bytes. 

Es ist wirklich eine Schande, dass dies auch bei der Verbindungsgeschwindigkeit der Fall ist. Ihr ISP sagt 1,5 Mbit / s, anstatt Ihnen ~ 150 Kilobyte mitzuteilen. es ist nur sehr irreführend

Ibu
quelle
3
Bei der Angabe, wie groß eine Datei mit 15682 Bit ist oder wie schnell eine solche Datei über ein Netzwerk übertragen werden kann, spielen Zweierpotenzen keine Rolle. Und das ist der Kontext, in dem die größte Verwirrung herrscht.
Bart van Heukelom
2
Letztendlich wird die Datei in Speicherseiten gespeichert, die an binären Leistungsgrenzen ausgerichtet sind. Beim Senden über TCP beträgt die Fenstergröße, in der Pakete gesendet werden, ein Vielfaches von Zweierpotenzen. Wenn die Datei auf der Festplatte gespeichert ist, wird sie in Zweierblöcken gespeichert. Ich verstehe, was Sie sagen, aber Kilobyte = 1024 (oder zumindest ein Vielfaches von Zweierpotenzen) ist zu viel in der Berechnung verwurzelt.
FryGuy
1
Um fair zu sein, hat das Networking immer Bits als Basis verwendet.
Synetech
1
Die erste 5,25 "-Diskette enthielt 109.375 Bytes und wurde als" 109,4 Kbytes "angekündigt. Ich glaube, dies wurde auch aus Marketinggründen gemacht. Sie denken, es wäre logischer, sie als" 106,8 KB "zu schreiben. Und Bandlaufwerke und Prozessor Geschwindigkeiten und Modemgeschwindigkeiten werden alle in Dezimalzahlen gemessen, um uns zu täuschen.
Endolith
1
@Ibu: Der Unterschied zwischen 1.000.000.000 Bytes und 1 GB ist 0. Warum würden Diskettenhersteller in der Tat ihre Zahlen böswillig aufblähen, wenn der Unterschied so gering ist? Sie würden nicht. Sie haben 1000er verwendet, weil es logisch, offensichtlich und korrekt ist, und nicht, weil sie Teil einer Verschwörung sind, um Kunden zu betrügen. Aus dem gleichen Grund messen die Festplattenhersteller seit den MB-Jahren auch in Tausenden von Jahren.
Endolith
0

Wenn Sie bedenken, dass Zahlen auf Computern binär sind und 2 ^ 10 1024 ist, ist dies absolut sinnvoll. Es ist viel einfacher, mit 1024 anstatt mit 1000 zu arbeiten, da Sie mit nur ganzzahliger Mathematik und Bitverschiebung leicht durch 1024 dividieren können . Das Dividieren durch 1000 ist eine viel teurere Operation, für die möglicherweise Gleitkomma-Mathematik erforderlich ist.

Z.B

bytes = 1 073 741 824
kilobytes = bytes >> 10 = 1 048 576
megabytes = kilobytes >> 10 = 1024
gigabytes = megabytes >> 10 = 1
Jo-Herman Haugholt
quelle
Denken Sie ernsthaft, dass die Berechnungszeit relevant ist? Warum verarbeiten Computer "km" dann nicht als "1024 m", wenn es so schwer zu konvertieren ist?
Endolith
@endolith Ja, ich denke schon, zumindest historisch. Während es heutzutage vernachlässigbar sein mag, wäre in den frühen Tagen, als jeder CPU-Zyklus eine hohe Priorität hatte, eine schnelle und einfache Berechnung vorzuziehen, die eine anständige Antwort liefert. Vor allem, wenn die Leute laut Konvention wüssten, dass 1 KB 1024 Byte bedeutet.
Jo-Herman Haugholt