Was ist der Unterschied zwischen einem Kibibyte, einem Kilobit und einem Kilobyte?

45

Diese Frage ließ mich über die Unterschiede zwischen diesen drei Arten der Größenmessung nachdenken : einem Kibibyte , einem Kilobit und dem herkömmlichen Kilobyte .

Ich verstehe, dass diese Messungen unterschiedliche Verwendungszwecke haben (die Datenübertragungsrate wird in Bit / Sek. Gemessen), bin mir aber nicht sicher, ob ich den Unterschied zwischen MB und MB und MiB erkennen kann.

Hier ist ein Kommentar, der unten wiedergegeben ist und aus dieser Antwort stammt ( Hervorhebung von mir ).

Der C64 verfügt über 65536 Byte RAM. Nach Konvention Speichergröße ist in bestimmten kibibytes , Datenübertragungsraten in Kilobit und Massenspeicher in was auch immer-die-Hersteller-denken-of-jetzt - Bytes . 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. - Drittens

Rot und weiß
quelle
12
Es wird jahrelang Verwirrung geben. In den frühen Tagen des Computerbetriebs stellten die Leute fest, dass es eindeutig viel einfacher war, mit Faktoren von 1024 anstatt 1000 für Computer zu arbeiten. Jahrzehntelang wurde (und wird immer noch sehr oft) das Standard-SI-Präfix "kilo" für das nicht standardisierte 1024 verwendet, und es wurde zu einem De-facto-Standard für die Datenverarbeitung. Abgesehen davon, dass einige Leute die SI 1000 trotzdem benutzten. Um das Durcheinander auszuräumen, wird "kibi" jetzt offiziell als Faktor 1024 definiert - aber für einen einfachen Übergang war es viel zu spät. "kilo" wird noch eine Weile regelmäßig für 1024 Faktoren benutzt / missbraucht.
Steve314
Es hätte Adoption geholfen, wenn sie nicht Präfixe gewählt hätten, die sich blöd anhörten. Sogar ein Akronym erfordert, dass jemand das Wort "geistig ansaugt". Ich werde einfach niemals "kibibyte" usw. verwenden
tgm1024

Antworten:

63
1 KiB (Kibibyte) = 1,024 B (Bytes) (2^10 Bytes)
1 kb  (Kilobit)  =   125 B (Bytes) (10^3 Bits ÷ (8 bits / byte) = 125 B)
1 kB  (Kilobyte) = 1,000 B (Bytes) (10^3 Bytes)

Dies ist bei allen SI-Präfixen genauso. k(1x10 3 ), M(1x10 6 ), G(1x10 9 ), also im weiteren Sinne:

1 MiB (Mebibyte) = 1,048,576 B (Bytes) (2^20 Bytes)
1 Mb  (Megabit)  =   125,000 B (Bytes) (10^6 Bits ÷ (8 bits / byte) = 125,000 B)
1 MB  (Megabyte) = 1,000,000 B (Bytes) (10^6 Bytes)

Die einzigen, die ein bisschen anders sind, sind die IEC-Binärpräfixe (kibi / mebi / gibi usw.), da sie sich in der Basis 2 befinden, nicht in der Basis 10 (z. B. sind alle Zahlen gleich 2 etwas anstelle von 10 etwas ). Ich bevorzuge es, nur die SI-Präfixe zu verwenden, weil ich es viel einfacher finde. Außerdem verwendet Kanada (mein Land) das metrische System, also bin ich es zum Beispiel gewohnt 1kg = 1000g(oder 1k anything = 1000 base things). Nichts davon ist falsch oder richtig; Stellen Sie einfach sicher, dass Sie wissen, welches Sie verwenden und was es wirklich bedeutet.

So beschwichtigen Sie die Kommentatoren:

1 Byte (B) = 2 nibbles = 8 bits (b)

Wenn Sie jemals in einem Hex-Editor nachgesehen haben, wird daher alles in zwei hexadezimale Zeichen aufgeteilt. Jedes Hex-Zeichen hat die Größe eines Nibbles und es gibt zwei zu einem Byte. Zum Beispiel:

198 (decimal) = C6 (hex) = 11000110 (bits)
squircle
quelle
5
+1 Es kann nützlich sein, zu erwähnen, dass ein Byte 8 Bits enthält.
Paradroid
4
... und vergiss nicht, dass ein Nybble aus vier Bits (oder einem halben Byte) besteht!
Linker3000
4
Beachten Sie auch, dass der Kleinbuchstabe "b" manchmal falsch verwendet wird, um "Bytes" abzukürzen. Ich sehe, dass viele Orte einfach "bit" in der Abkürzung verwenden, wie MB für Megabyte und Mbit für Megabit, und sich von "b" insgesamt fernhalten.
James
4
Das Präfix kilo wird mit k abgekürzt, nicht mit K.
garyjohn.
1
@Redandwhite Nein, sie verwenden Basis 10, um ihren Speicher zu messen, aber unsere Computer verwenden Basis 2. Dies erklärt die Diskrepanz zwischen den Angaben auf der Verpackung und den Angaben auf dem Computer. Zum Beispiel 500GB (box) = 465.7GiB (computer)(und dass ist , wie sie Sie erhalten).
Squircle
9

Es gibt einige grundlegende Begriffe, die einfach und leicht zu verstehen sind:

* A bit      (b)   is the smallest unit of data comprised of just {0,1}
* 1 nibble   (-)   = 4 bits (cutesy term with limited usage; mostly bitfields)
* 1 byte     (B)   = 8 bits (you could also say 2 nibbles, but that’s rare)

Um zwischen Bits und Bytes (mit einem beliebigen Präfix) zu konvertieren, müssen Sie nur ein Vielfaches oder eine Division durch acht durchführen. nett und einfach.

Jetzt wird es etwas komplizierter, da es zwei Systeme zum Messen großer Datengruppen gibt: Dezimal und Binär . Computerprogrammierer und Ingenieure verwendeten jahrelang nur die gleichen Begriffe für beide, aber die Verwirrung rief schließlich einige Versuche hervor, einen geeigneten Satz von Präfixen zu standardisieren .

Jedes System verwendet einen ähnlichen Satz von Präfixen, die entweder auf Bits oder auf Bytes angewendet werden können. Jedes Präfix startet in beiden Systemen gleich, aber die Binären klingen danach wie Baby-Talk.

Das Dezimalsystem ist die Basis 10, an die sich die meisten Menschen gewöhnt haben und die wir verwenden, weil wir 10 Finger haben. Das Binärsystem ist die Basis 2, an die die meisten Computer gewöhnt sind und die sie verwenden, weil sie zwei Spannungszustände haben.

Das Dezimalsystem ist für die meisten Menschen offensichtlich und einfach zu verwenden (es ist einfach genug, um sich in unseren Köpfen zu vermehren). Jedes Präfix erhöht sich um 1.000 (der Grund dafür ist eine ganz andere Sache).

Das binäre System ist für die meisten Nicht-Computer-Benutzer viel schwieriger zu bedienen, und selbst Programmierer können oft nicht beliebig viele Zahlen in ihren Köpfen speichern. Trotzdem ist es eine einfache Sache, ein Vielfaches von zwei zu sein. Jedes Präfix erhöht sich um 1.024. Ein "K" ist 1.024, da dies die nächste Potenz von zwei zur Dezimalzahl "k" von 1.000 ist (dies mag an diesem Punkt zutreffen, aber die Differenz nimmt mit jedem aufeinanderfolgenden Präfix schnell zu).

Die Zahlen sind für Bits und Bytes mit demselben Präfix gleich.

* Decimal:
* 1 kilobyte (kB)  = 1,000 B  = 1,000^1 B           1,000 B
* 1 megabyte (MB)  = 1,000 KB = 1,000^2 B =     1,000,000 B
* 1 gigabyte (GB)  = 1,000 MB = 1,000^3 B = 1,000,000,000 B

* 1 kilobit  (kb)  = 1,000 b  = 1,000^1 b           1,000 b
* 1 megabit  (Mb)  = 1,000 Kb = 1,000^2 b =     1,000,000 b
* 1 gigabit  (Gb)  = 1,000 Mb = 1,000^3 b = 1,000,000,000 b

* …and so on, just like with normal Metric units meters, liters, etc.
* each successive prefix is the previous one multiplied by 1,000



* Binary:
* 1 kibibyte (KiB) = 1,024 B  = 1,024^1 B           1,024 B
* 1 mebibyte (MiB) = 1,024 KB = 1,024^2 B =     1,048,576 B
* 1 gibibyte (GiB) = 1,024 MB = 1,024^3 B = 1,073,741,824 B

* 1 kibibit  (Kib) = 1,024 b  = 1,024^1 b =         1,024 b
* 1 mebibit  (Mib) = 1,024 Kb = 1,024^2 b =     1,048,576 b
* 1 gibibit  (Gib) = 1,024 Mb = 1,024^3 b = 1,073,741,824 b

* …and so on, using similar prefixes as Metric, but with funny, ebi’s and ibi’s
* each successive prefix is the previous one multiplied by 1,024

Beachten Sie, dass der Unterschied zwischen dem Dezimal- und dem Binärsystem klein beginnt (bei 1 KB sind es nur 24 Byte oder 2,4% Abstand), aber mit jeder Ebene größer wird (bei 1 GB sind sie> 70 MB oder 6,9% Abstand).

Als allgemeine Faustregel verwenden Hardwaregeräte Dezimaleinheiten (ob Bits oder Bytes), während Software binäre Einheiten (normalerweise Bytes) verwendet.

Dies ist der Grund, warum einige Hersteller, insbesondere Laufwerkshersteller, gerne Dezimalstellen verwenden, weil dadurch die Laufwerksgröße größer wird, die Benutzer jedoch frustriert sind, wenn sie feststellen, dass sie weniger als erwartet haben, wenn sie Windows et sehen. al. berichte die Größe in binär. Zum Beispiel, 500GB = 476GiB, so während der Antrieb aus 500GB enthalten und als solche gekennzeichnet, Arbeitsplatz zeigt die binäre 476GiB (aber als „476GB“), so dass die Nutzer fragen , wo der andere 23GB ging. (Laufwerkshersteller fügen Paketen häufig eine Fußnote hinzu, die besagt, dass die "formatierte Größe geringer" ist, was irreführend ist, da der Overhead des Dateisystems nichts im Vergleich zum Unterschied zwischen Dezimal- und Binäreinheiten ist.)

Netzwerkgeräte verwenden aus historischen Gründen häufig Bits anstelle von Bytes, und ISPs werben häufig gerne mit Bits, da dadurch die Geschwindigkeit der von ihnen angebotenen Verbindungen erhöht wird: 12 Mbit / s anstelle von nur 1,5 Mbit / s. Sie mischen und passen oft sogar Bits und Bytes sowie Dezimalzahlen und Binärzahlen an. Sie können beispielsweise eine vom ISP als "12 MBit / s" bezeichnete Leitung abonnieren, wenn Sie davon ausgehen, dass Sie 12 MBit / s erhalten, aber tatsächlich nur 1,43 MBit / s (12.000.000 / 8/1024/1024) erhalten.

Synetech
quelle
2
@ Endolith, nicht wahr. Erstens gibt es tatsächlich oder zumindest in der Vergangenheit einige Laufwerkshersteller, die Binäreinheiten verwenden. Zweitens haben Sie den Punkt verpasst. Wenn sie wollten, könnten sie 73.400.320 auf das Laufwerk stellen, was in der Tat 70M (i) B statt 66 wäre. Sie verwenden 70.000.000, weil es billiger ist, das zu verwenden und es immer noch "70MB" zu nennen. Es ist einfach, Ecken zu schneiden, und viele Hersteller tun es. Sieh dir das Essen an. Anstelle von 500G wird 454G eingesetzt, da es 1LB entspricht. Schlimmer noch, statt 454G werden sie 450G einsetzen und die fehlenden 4G auf das Runden schieben. Es ist keine Verschwörung, sondern eine Kostenreduzierung.
Synetech
1
Bitte geben Sie einige Beispiele von Festplattenherstellern an, die Binäreinheiten verwenden.
Endolith
1
@ Endolith, das ist keine Geschichtswebsite. Vielleicht poste ich beim Frühjahrsputz ein Foto oder ähnliches. Andernfalls können Sie in ein Computerhistorisches Museum oder einen Computerladen gehen und alte Festplatten finden, wenn es Ihnen so wichtig ist. Heutzutage verwenden die meisten Hersteller absichtlich Etiketten, die den Klang größer machen. Wie ich schon sagte, sie könnten 73.400.320 Byte für ein 70-MB-Laufwerk schaffen, wenn sie wollten, aber warum sollten sie sich die Mühe machen, wenn sie billig sind und es technisch immer noch 70 MB nennen können? Auch hier handelt es sich nicht um eine Verschwörung, sondern um eine übliche Marketingtäuschung.
Synetech
2
Ich habe bereits die BitSaver-Archive durchgesehen, und alle Beispiele, die ich finde, sind dezimal. Dieser Mythos, dass die Hersteller von Antrieben irgendwann von binär auf dezimal umgestellt haben, um Kunden zu täuschen, ist verrückt. Sie wurden nicht von Marketingabteilungen geschrieben, sondern von Ingenieuren, die die von Ingenieuren verwendeten Standardeinheiten verwenden. Es ist logisch und vernünftig, ein IBM 3340-Laufwerk mit 70.000.000 Byte als "70 MB" zu bezeichnen. Das ist, was "Mega-" immer bedeutet hat und was Benutzer erwarten würden. Es ist verrückt, es an einigen Stellen "66 MB" und an anderen Stellen "68,359 KB" zu nennen, wie es Microsoft Windows tut.
Endolith
1
@endolith, niemand sagte, dass sie auf dezimal umgestellt haben, um zu täuschen, nur dass sie sie absichtlich auf diese Weise vermarkten, obwohl sie von der Verwirrung wissen und das Laufwerk 73.400.320 Bytes statt nur 70.000.000 Bytes machen könnten , was keine runde Zahl in Computern ist. Was Ihre Aussage darüber "immer" bedeutet, dass es hier bereits einen Thread darüber gibt, wann Binäreinheiten zum Einsatz kamen, und es ist lange her, sicher bevor Computer zu Konsumgütern wurden.
Synetech
-4

Einige der Antworten sind nicht genau.

Machen wir uns zuerst ein paar Notizen:

Das Präfix "Kilo" bedeutet 1 000. Das Präfix "Kilo" bedeutet 1 000 dieses Artikels. Gleiches gilt für "Mega" oder "Million", "Giga" oder "Milliarde", "Tera" oder Billionen und so weiter.

Der Grund, warum 1 024 existiert, anstatt nur 1 000 zu haben, liegt in der Art und Weise, wie binäre Arithmetik funktioniert. Binär ist, wie der Name schon sagt, ein Basis-2-System (es besteht aus 2 Ziffern: 0, 1). Es kann nur mit zwei Ziffern arithmetisch arbeiten, im Gegensatz zu dem Basis-10-System, das wir täglich verwenden (0, 1, 2 ... 9), das zehn Ziffern hat.

Um mit Binärarithmetik auf die Zahl 1 000 ( Kilo ) zu kommen, muss eine Gleitkommaberechnung durchgeführt werden. Dies bedeutet, dass bei jeder Operation eine Binärzahl übertragen werden muss, bis 1 000 erreicht ist. Im Basis-10-System ist 1 000 = 10 3 (Sie erhöhen immer 10 auf eine Potenz in Basis 10), eine sehr einfache und schnelle Berechnung, die ein Computer ohne "Reste" ausführen kann, im Basis-2-System jedoch Es ist nicht möglich, 2 (Sie erhöhen immer 2 zu einer Potenz in Basis 2) auf eine positive Ganzzahl zu erhöhen, um 1 000 zu erhalten. Es muss eine Gleitkommaoperation oder eine lange Addition verwendet werden, und die Ausführung dauert länger als die Ganzzahlberechnung 2 10 = 1024.

Möglicherweise haben Sie bemerkt, dass 2 10 = 1 024 verlockend nahe an 1 000 liegt und 1 024 zu 1 signifikante Zahl 1 000 ist (eine sehr gute Annäherung), und zurück, als die CPU-Geschwindigkeit als alter Hund langsam war und der Speicher sehr begrenzt war Dies war eine ziemlich anständige Annäherung und sehr einfach zu handhaben, ganz zu schweigen von der schnellen Ausführung.

Es handelt sich aus diesem Grund um Begriffe mit den Präfixen "Kilo", "Mega", "Giga" usw., die mit nicht genauen Zahlen (1 024, 2 048, 4 096 usw.) verbunden sind. Sie sollten niemals exakte Zahlen sein, sondern waren binäre Näherungen von Zahlen zur Basis 10. Sie entstanden einfach als Jargonwörter, die "Tech" -Leute verwendeten.

Um die Sache noch komplizierter zu machen, hat JEDEC eigene Standards für Einheiten entwickelt, die in Halbleiterspeicherschaltungen verwendet werden. Vergleichen wir einige der JEDEC-Einheiten mit SI- Einheiten (Standard International):

Kb = Kilobit (JEDEC, 1 024 Bit. Beachten Sie den Groß- und Kleinbuchstaben "b".
KB = Kilobit (SI, 1 000 Bit. Beachten Sie den Kleinbuchstaben "k" und den Großbuchstaben "B".)

b = bit (JEDEC, beachte den Kleinbuchstaben 'b')
b = ??? (SI definiert das Wort "Bit" nicht, daher kann seine Verwendung beliebig sein.)

B = Byte (JEDEC, 8 Bit. Beachten Sie den Großbuchstaben 'B')
B = ???? (SI definiert nicht das Wort "Byte" und "B" wird für "Bel" [wie in DeciBel] verwendet.)

KB = Kilobyte (JEDEC, 1 024 Bytes. Beachten Sie die Großbuchstaben "K" und "B".
Kb = Kilobyte (SI, 1 000 Bytes. Beachten Sie die Verwendung der Kleinbuchstaben "k" und "B".)

Der Punkt ist, unterschiedliche Orte verwenden unterschiedliche Präfixe mit unterschiedlichen Definitionen. Es gibt keine feste Regel, welche Sie verwenden sollten, aber Sie müssen mit der übereinstimmen, die Sie verwenden.

Gestatten Sie mir zu klären, warum Sie bei Binärzahlen nicht 1 000 machen können, indem Sie die Zahl auf eine positive ganze Zahl erhöhen.

Binärsystem:

+----------------------------------------------------------------------------------+
| 1 024ths | 512ths | 256ths | 128ths | 64ths | 32nds | 16ths | 8ths | 4s | 2s | 0 |
+-----------------------------------------------------------------------------------

Beachten Sie, dass sich im Binärsystem die Spalten jedes Mal verdoppeln. Dies steht im Gegensatz zum Basis-10-System, das jedes Mal um 10 erhöht wird:

+--------------------------------------------------------------------------+
| 1 000 000ths | 100 000ths | 10 000ths | 1 000ths | 100ths | 10s | 1s | 0 |
+--------------------------------------------------------------------------+

Die ersten 10 Potenzen in binär (Basis 2) sind:

2 0 = 1
2 1 = 2
2 2 = 4
2 3 = 8
2 4 = 16
2 5 = 32
2 6 = 64
2 7 = 128
2 8 = 256
2 9 = 512
2 10 = 1 024

Wie Sie sehen, ist es nicht möglich, die Binärzahl 2 auf eine positive Ganzzahl zu erhöhen, um 1 000 zu erreichen.

user3005790
quelle
3
Ich glaube, Sie sind falsch, wenn Sie sagen, dass die Zahl 1000 Gleitkomma-Arithmetik benötigt. Sie können jede natürliche Zahl mit einem beliebigen Nummerierungssystem darstellen. Tatsächlich ist das binäre Äquivalent von 1000 1111101000 .
Doktoro Reichard
Doktoro, bitte denken Sie daran, dass wir im Binärsystem oder in der Basis 2 arbeiten. Sie sind also derjenige, der falsch ist. Hier sind die ersten 10 Zweierpotenzen (Basis 2): 2 ^ 0 = 1. 2 ^ 1 = 2. 2 ^ 3 = 4. 2 ^ 4 = 8. 2 ^ 5 = 16. 2 ^ 6 = 64 2 ^ 7 = 128. 2 ^ 8 = 256. 2 ^ 9 = 512. 2 ^ 10 = 1024. Beachten Sie, dass die Antwort exponentiell ist und sich jedes Mal verdoppelt, wenn Sie den Exponenten um 1 erhöhen Es ist möglich, eine binäre 2 (eine BINÄR 2 ... keine Basis 10 2) auf eine positive ganze Zahl zu erhöhen, um 1 000 zu erhalten. Ich schätze die Abwärtsabstimmung trotzdem.
user3005790
Dies erklärt den Unterschied zwischen einem Bit und einem Byte nicht. Tatsächlich gibt es eine "Hard-Fast-Regel". 1 KB ist eintausend Bits. 1 KB ist eintausend Bytes. Es gibt einen großen Unterschied. 8 KB sind 1 KB.
Ramhound
3
Obwohl diese Anweisung korrekt ist, müssen Sie keine Gleitkomma-Arithmetik ausführen. Sie verstehen Potenzen von 2, also können Sie auch verstehen, dass 1111101000 = 2 ^ 9 + 2 ^ 8 + 2 ^ 7 + 2 ^ 6 + 2 ^ 5 + 2 ^ 3 = 1000.
Doktoro Reichard
1
Ich glaube nicht, dass "Sie waren nie dazu gedacht, genaue Zahlen zu sein, sie waren binäre Approximationen von Zahlen zur Basis 10" ; Ich denke, es ist nur ein Ergebnis der Hardware, die auf das Speichern von Einsen und Nullen und die Adressierung der Hardware mit Binärregistern beschränkt war (ist). Beide sind Basis 2; Ich glaube, es hat überhaupt nichts mit der Annäherung an die Basis 10 zu tun. Außerdem verstehe ich nicht, was Sie über Berechnungen sagen. Es ist nicht so, als würde die Computerausgabe 1024 anzeigen, wenn tatsächlich beabsichtigt, 1000 anzuzeigen, oder 1000, wenn intern 1024 angezeigt würde. Auf welche Berechnungen beziehen Sie sich?
Arjan