Binärpräfix
Binärpräfixe sind Vorsätze für Maßeinheiten (Einheitenvorsätze), die Vielfache bestimmter Zweierpotenzen bezeichnen. Sie werden vorwiegend mit Einheiten wie Bit (Symbol „bit“, selten „b“) oder Byte (Symbol „B“) verwendet, um Datenmengen zu bemessen, da hier aus technischen Gründen häufig Zweierpotenzen auftreten. Im Unterschied dazu sind Dezimalpräfixe Einheitenvorsätze, die Vielfache bestimmter Zehnerpotenzen bezeichnen. SI-Präfixe sind Dezimalpräfixe für die Benutzung im SI-Einheitensystem, IEC-Binärpräfixe sind Binärpräfixe, gedacht für die Verwendung bei Datenmengen. Als Einheitenvorsatz wird sowohl der Name als auch das zugehörige Symbol bezeichnet.
Historisch betrachtet wurden für Datenmengen zunächst nur die SI-Präfixe als Binärpräfixe verwendet, während für physikalische SI-Einheiten die SI-Präfixe (als Dezimalpräfixe) dienen. Später wurden für Datenmengen je nach Kontext die SI-Präfixe mal als Binärpräfix und mal als Dezimalpräfix verwendet. Um eine Alternative zur mehrdeutigen Verwendung der SI-Präfixe zu haben, legte die IEC eigene Präfixe fest, die nun ausschließlich als Binärpräfixe dienen sollen.
IEC-Präfixe zur Basis 2
Die Binärpräfixe sind gemäß der folgenden Tabelle definiert:
Name | Symbol | Wert |
---|---|---|
kibi | Ki | 210 = 10241 = 1.024 |
mebi | Mi | 220 = 10242 = 1.048.576 |
gibi | Gi | 230 = 10243 = 1.073.741.824 |
tebi | Ti | 240 = 10244 = 1.099.511.627.776 |
pebi | Pi | 250 = 10245 = 1.125.899.906.842.624 |
exbi | Ei | 260 = 10246 = 1.152.921.504.606.846.976 |
zebi | Zi | 270 = 10247 = 1.180.591.620.717.411.303.424 |
yobi | Yi | 280 = 10248 = 1.208.925.819.614.629.174.706.176 |
Beispiel: 512 MiB (Mebibyte) = 512 · 220 Byte = 536.870.912 Byte ≈ 537 MB (Megabyte).
Normen
Um Mehrdeutigkeiten zu vermeiden, schlug die Internationale elektrotechnische Kommission (IEC) im Juni 1996 einen neuen Normentwurf für Binärpräfixe vor, die nur in der binären Bedeutung verwendet werden sollten.[1][2] Dieser Entwurf wurde im Dezember 1998 als Norm beschlossen und im Januar 1999 als Ergänzung zu IEC 60027-2 veröffentlicht.[3] Er führte die Präfixe kibi, mebi, gibi, tebi, pebi und exbi für binäre Vielfache von Einheiten ein. In diesen Bezeichnungen wurden die ersten zwei Buchstaben der bereits genormten SI-Präfixe um „bi“ für „binär“ ergänzt. Für die Symbole der Binärpräfixe wurden die Symbole der SI-Präfixe verwendet und an diese der Kleinbuchstabe „i“ angehängt, wobei für das kibi im Gegensatz zum kilo der Großbuchstabe „K“ verwendet wurde. In der Norm wurde außerdem darauf hingewiesen, dass die SI-Präfixe nur für auf Zehnerpotenzen basierende Vielfache verwendet werden sollten. Diese Ergänzungen wurden in die im November 2000 veröffentlichte zweite Auflage der Norm IEC 60027-2 integriert. In die im August 2005 veröffentlichte dritte Ausgabe der Norm IEC 60027-2 wurden auch die Binärpräfixe zebi und yobi aufgenommen.[4]
Viele Standardisierungsorganisationen schlossen sich dieser Empfehlung an. Darunter sind zu nennen das BIPM/CIPM (1998), das IEEE 1541 (2002) und speziell in Deutschland die Physikalisch-Technische Bundesanstalt (2007)[5] (weitere: NIST, CENELEC[6], DIN/EN[7][8]).
Das für die SI-Präfixe zuständige Internationale Büro für Maß und Gewicht (BIPM) rät von der binären Verwendung der SI-Präfixe ausdrücklich ab und empfiehlt für die Bezeichnung von Zweierpotenzen die Binärpräfixe gemäß der bisherigen IEC 60027-2,[9] die durch die weltweite ISO-Norm IEC 80000-13:2008 (bzw. DIN EN 80000-13:2009-01) ersetzt wurde.
SI-Präfixe für binäre Vielfache zur Basis 10
Da es bis 1996 keine speziellen Einheitenvorsätze für Zweierpotenzen gab, hat es sich verbreitet, die SI-Präfixe im Zusammenhang mit Speicherkapazitäten zur Bezeichnung von Zweierpotenzen zu verwenden (mit Faktor 210 = 1024 statt 1000), die den gewünschten Zweierpotenzen am nächsten kamen. Es sollte dann aus der Kombination mit den Einheiten Bit oder Byte oder einem anderen Kontext hervorgehen, dass eine Zweierpotenz gemeint war. Diese binäre Verwendung der SI-Präfixe wurde 1986 von der IEEE auch in einem Glossar dokumentiert.[10]
Während dies bei Speicherbausteinen, die üblicherweise nur in Größen von Zweierpotenzen hergestellt werden, wenig problematisch ist, führte dies beispielsweise bei der Angabe von Festplattenkapazitäten in GB oder Datenübertragungsraten in MB/s oder Mbit/s zu Zweifeln hinsichtlich der genauen Bedeutung. Zudem wird die Abweichung bei höherwertigen Präfixen immer größer, sodass sie oft nicht mehr vernachlässigbar ist. Auch kommen vereinzelt Mischformen vor, etwa bei der Speicherkapazität einer 3,5-Zoll-Diskette: 1,44 MB = 1440 kB = 1440 × 1024 Byte.
Das für die SI-Präfixe zuständige Internationale Büro für Maß und Gewicht (BIPM) rät daher von dieser nicht normgemäßen Verwendung der SI-Präfixe ausdrücklich ab und empfiehlt für die Bezeichnung von Zweierpotenzen die Binärpräfixe gemäß IEC 60027-2.[11] Trotzdem ist diese empfohlene Bezeichnungsweise auch heute (2009) nicht sehr weit verbreitet (siehe auch Abschnitt Akzeptanz und Verbreitung).[12]
Die Werte der SI-Präfixe und der nächstliegenden Zweierpotenzen, sowie die prozentualen (gerundeten) Unterschiede sind in der folgenden Tabelle dargestellt:
Dezimalpräfixe | Unterschied | Binärpräfixe |
---|---|---|
kilo (k) = 103 = 1.000 | 2,40 % | kibi (Ki) = 210 = 1.024 |
mega (M) = 106 = 1.000.000 | 4,86 % | mebi (Mi) = 220 = 1.048.576 |
giga (G) = 109 = 1.000.000.000 | 7,37 % | gibi (Gi) = 230 = 1.073.741.824 |
tera (T) = 1012 = 1.000.000.000.000 | 9,95 % | tebi (Ti) = 240 = 1.099.511.627.776 |
peta (P) = 1015 = 1.000.000.000.000.000 | 12,58 % | pebi (Pi) = 250 = 1.125.899.906.842.624 |
exa (E) = 1018 = 1.000.000.000.000.000.000 | 15,29 % | exbi (Ei) = 260 = 1.152.921.504.606.846.976 |
zetta (Z) = 1021 = 1.000.000.000.000.000.000.000 | 18,06 % | zebi (Zi) = 270 = 1.180.591.620.717.411.303.424 |
yotta (Y) = 1024 = 1.000.000.000.000.000.000.000.000 | 20,89 % | yobi (Yi) = 280 = 1.208.925.819.614.629.174.706.176 |
Eine anderer zuweilen verwendeter Ansatz, um auf die beabsichtigte Abweichung von der Zehnerpotenz hinzuweisen, besteht darin, für die Zweierpotenzen der Großbuchstabe „K“ (häufig nur als „Ka“ gesprochen) an Stelle des Kleinbuchstabens „k“ zu verwenden. So kann „k“ für 1000 Einheiten verwendet werden und „K“ für 1024. Diese Konvention ist jedoch weder normiert noch wird sie konsequent angewendet. Auch kann dieser Ansatz nicht auf die größeren Präfixe übertragen werden, da die Symbole für die SI-Präfixe ab mega in Großbuchstaben geschrieben werden („M“ für mega, „G“ für giga usw.).
Verhältnis binärer und dezimaler Präfixe
Die Werte der SI-Präfixe steigen in Zehnerpotenzen, weswegen die SI-Präfixe auch als dezimale Präfixe bezeichnet werden, während die Werte der Binärpräfixe in Zweierpotenzen ansteigen. Konkret steigen die Werte der dezimalen Präfixe – ausgehend von kilo – jeweils um den Faktor $ 10^{3}=1000 $ und die Werte der binären Präfixe um den Faktor $ 2^{10}=1024 $. D. h. kilo entspricht $ 1000^{1} $, mega $ 1000^{2} $, giga $ 1000^{3} $ usw., und kibi entspricht $ 1024^{1} $, mebi $ 1024^{2} $, gibi $ 1024^{3} $ usw. Beschreibt $ n\in \mathbb {N} $ die Präfixe derart, dass $ n=1 $ für kilo und kibi steht, $ n=2 $ für mega und mebi, $ n=3 $ für giga und gibi usw., so ergeben sich die Werte der dezimalen Präfixe zu $ 1000^{n} $ und die Werte der binären Präfixe zu $ 1024^{n} $. Aus dieser Tatsache lässt sich leicht eine Formel erstellen, welche das Verhältnis der Präfix-Werte zueinander angibt.
- $ \Phi _{\frac {\mathrm {bin} }{\mathrm {dez} }}(n)={\frac {1024^{n}}{1000^{n}}}=\left({\frac {1024}{1000}}\right)^{n}=1{,}024^{n},\quad n\in \mathbb {N} $
- $ \Phi _{\frac {\mathrm {dez} }{\mathrm {bin} }}(n)={\frac {1000^{n}}{1024^{n}}}=\left({\frac {1000}{1024}}\right)^{n}=1{,}024^{-n},\quad n\in \mathbb {N} $
Die folgende Tabelle gibt eine Übersicht über die sich daraus ergebenden Verhältnisse:
Name | bin : dez | dez : bin | Beispiel | Unterschied in % |
---|---|---|---|---|
Kilobyte, kibibyte | 1,024 | 0,977 | 100 kB = 97,7 KiB | +2,4 % bzw. −2,3 % |
Megabyte, mebibyte | 1,049 | 0,954 | 100 MB = 95,4 MiB | +4,9 % bzw. −4,6 % |
Gigabyte, gibibyte | 1,074 | 0,931 | 100 GB = 93,1 GiB | +7,4 % bzw. −6,9 % |
Terabyte, tebibyte | 1,100 | 0,909 | 100 TB = 90,9 TiB | +10,0 % bzw. −9,1 % |
Petabyte, pebibyte | 1,126 | 0,888 | 100 PB = 88,8 PiB | +12,6 % bzw. −11,2 % |
Exabyte, exbibyte | 1,153 | 0,867 | 100 EB = 86,7 EiB | +15,3 % bzw. −13,3 % |
Zettabyte, zebibyte | 1,181 | 0,847 | 100 ZB = 84,7 ZiB | +18,1 % bzw. −15,3 % |
Yottabyte, yobibyte | 1,209 | 0,827 | 100 YB = 82,7 YiB | +20,9 % bzw. −17,3 % |
Motivation und Geschichte
Ein wichtiger Bestandteil eines Computers ist der Arbeitsspeicher, der heute üblicherweise als Halbleiterspeicher realisiert wird. Die einzelnen Speicherzellen werden mit Hilfe von parallelen, binär arbeitenden Leitungen adressiert, die zusammengefasst als Adressbus bezeichnet werden. Mit einem Adressbus, der $ n $ Leitungen besitzt, können $ 2^{n} $ Speicherzellen adressiert werden. Daher werden Halbleiterspeicher üblicherweise in Größen von Zweierpotenzen hergestellt. Mit zunehmender Größe der Speicher wurde es mangels standardisierter Alternativen üblich, SI-Präfixe mit den Speichereinheiten Bit und Byte zu verwenden, um Zweierpotenzen zu quantifizieren, obwohl die SI-Präfixe auf Zehnerpotenzen basieren. Bei Datenspeichern mit sequentieller Adressierung oder bei der sequentiellen Übertragung von Daten gibt es allerdings keinen Grund, mit Zweierpotenzen zu arbeiten, sodass hier die SI-Präfixe meist normgerecht verwendet werden. Dies hat zu einiger Verwirrung geführt, da teilweise auch für Fachleute nicht mehr eindeutig erkennbar ist, ob der jeweilige SI-Vorsatz normgerecht als Zehnerpotenz oder normwidrig als Zweierpotenz interpretiert werden soll.
Beispielsweise haben sich für die Bezeichnung „1 MB“ in der Praxis drei verschiedene Interpretationen eingebürgert:
- „1 MB“ = 1.000.000 B = 106 B = 1000 kB – z. B. bei Festplatten, DVD-Medien und Dauerspeichermedien mit Flash-Speicher, wie USB-Sticks oder SD Memory Cards;
- „1 MB“ = 1.048.576 B = 220 B = 1 MiB – z. B. bei Arbeitsspeicher (RAM, ROM, … ), Flash-Speicherchips, CD-Medien;
- „1 MB“ = 1.024.000 B = 1000 · 1024 B = 1024 kB = 1000 KiB – zur Kapazitätsangabe bei der klassischen 3½″-Diskette.
Außerdem findet sich noch die Bezeichnung „1 Mb“ (mit kleinem „b“ für „Bit“):
- „1 Mb“ = 1.000.000 b – bei der Datenübertragung, z. B. Telekommunikationsleitungen und Ethernet;
- „1 Mb“ = 1.048.576 b – bei Speicherbausteinen, z. B. „64-Mb-Chip“.
Diese inkonsequente Vorgehensweise kann beim Rechnen mit Einheiten zu schwer nachvollziehbaren Fehlern führen, wie an folgendem einfachen Beispiel gezeigt werden soll: Ein Computerbenutzer will eine Datei mit der angegebenen Größe von „40 MB“ aus dem Internet herunterladen und hat dazu eine Datenleitung mit einer Datenübertragungsrate von 8 Mbit/s zur Verfügung. Die zur vollständigen Übertragung dieser Datei benötigte Zeit lässt sich mit der Umrechnung 1 B = 8 bit (vereinfacht) folgendermaßen berechnen:
- $ t={\frac {40\,\mathrm {MB} }{8\,\mathrm {Mbit} /\mathrm {s} }}={\frac {40\,\mathrm {MB} }{8\,\mathrm {Mbit} /\mathrm {s} \cdot 1\,\mathrm {B} /8\,\mathrm {bit} }}={\frac {40\,\mathrm {MB} }{1\,\mathrm {MB} /\mathrm {s} }} $
Hier drängt es sich auf, die „MB“ im Zähler gegen die „MB“ im Nenner zu kürzen, sodass sich ein Ergebnis von $ t=40\,\mathrm {s} $ ergibt. Wenn jedoch mit dem „MB“ im Zähler eine Zweierpotenz gemeint ist, während im Nenner eine Zehnerpotenz gemeint ist, kann man diese Einheiten nicht gegeneinander kürzen, obwohl dies praktisch nicht mehr ersichtlich ist.
Für eine saubere Lösung dieses Problems gibt es mehrere Möglichkeiten:
- Verzicht auf Präfixe (bei heutigen Speichergrößen unpraktikabel);
- ausschließliche und normgerechte Verwendung der SI-Präfixe;
- (zusätzliche) Verwendung der von der IEC genormten Binärpräfixe für Zweierpotenzen.
Die Einführung der Binärpräfixe bedeutet nicht, dass sie die SI-Präfixe für die Verwendung mit Bits und Bytes ersetzen sollen. Beispielsweise kann man die Größe eines 536.870.912 Byte großen Arbeitsspeichers mit 536.870.912 B, 229 B, ca. 537 MB oder eben praktischerweise als 512 MiB angeben. Dadurch können die SI-Präfixe stets eindeutig in ihrer genormten Bedeutung verwendet werden.
Welche Angabe sinnvoller ist, hängt vom Verwendungszweck ab, insbesondere davon, ob der Hintergrund einer binären Adressierung besteht und ob dieser von Belang ist (wie z.B. bei der Größe eines Halbleiterspeichers oder der Partitionierung einer Festplatte), oder ob dieser Hintergrund nicht mehr relevant ist (z.B. beim späteren Arbeiten mit Dateien auf denselben Medien). Das Arbeiten mit Zweierpotenzen kann allerdings beim Addieren oder Subtrahieren von Datenmengen mit verschiedenen Binärpräfixen und beim Übergang auf größere oder kleinere Binärpräfixe umständlicher sein als bei der Verwendung der auf das Dezimalsystem zugeschnittenen SI-Präfixe (wie bspw. 537 MB).
Akzeptanz und Verbreitung
Die Akzeptanz für diese IEC-Binärpräfixe hielt sich zumindest bis zum Januar 2002 in industrieller und wissenschaftlicher Literatur sowie in Software in Grenzen und wurde somit nur selten verwendet.[13] Auch bis heute ist nur eine sehr langsam zunehmende Akzeptanz und Verbreitung festzustellen. Beispielsweise wird in den Informationen für Autoren des IEEE ausdrücklich auf die normgerechte Verwendung von SI-Präfixen hingewiesen.[14] Das Computermagazin PC Games Hardware verwendet sie seit der Ausgabe 11/2007 (Erscheinungsdatum 2. Oktober 2007).[15] Davon abgesehen gibt es mittlerweile verschiedene Programme, welche die Binärpräfixe unterstützen, z. B. der Linux-Kernel,[16] sämtliche Linux-Distributionen, darauf aufbauende Tools wie Partitionierer (GParted), die GNU core utilities,[17] KDE 4, phpMyAdmin, WinSCP[18] und einige BitTorrent-Programme. Für Linux wird inzwischen der IEC-Standard lückenlos umgesetzt und dem Anwender die Wahl der Ausgabe gelassen, oder beide Größen angezeigt. Mac OS X geht ab Version 10.6 den umgekehrten Weg und verwendet SI-Präfixe, so wie sie für SI-Einheiten normiert sind, ebenfalls IEC-gerecht nur in ihrer dezimalen Bedeutung.[19]
Weblinks
- BIPM: SI prefixes
- NIST: Prefixes for binary multiples
- IEC: Prefixes for binary multiples
- Alexey Chernyak: IEC prefixes and symbols for binary multiples
- Stefan Ram: Der Begriff „Kilobyte“ und ähnliche Begriffe
Einzelnachweise
- ↑ International Electrotechnical Commission (IEC), new work item proposal 25/180/NP, Amendment of IEC 60027-2: 2005, 3. Auflage, Letter symbols to be used in electrical technology, Part 2: Telecommunications and electronics – Introduction of prefixes for binary multiples, IEC/TC 25/WG 1, June 1996.
- ↑ Markus Kuhn: Standardized units for use in information technology. 1996–12–29 [updated 1999-07-19]. [1]
- ↑ Amendment 2 to IEC 60027-2: Letter symbols to be used in electrical technology – Part 2: Telecommunications and electronics.
- ↑ IEC 60027-2, Ed. 3.0, (2005-08): Letter symbols to be used in electrical technology – Part 2: Telecommunications and electronics.
- ↑ Physikalisch-Technische Bundesanstalt: PTB-Mitteilungen 117 (2007), Heft 2, S. 166. „Das Internationale Einheitensystem”
- ↑ HD 60027-2:2003 Informationen zum CENELEC-Normierungsprozess.
- ↑ prEN 60027-2:2006 Informationen zum EN-Normierungsprozess.
- ↑ DIN EN 60027-2:2007-11 Beuth Verlag, Detailanzeige
- ↑ BIPM – SI-Broschüre, 8. Auflage, März 2006, Abschnitt 3.1: SI-Präfixe. Randnotiz. Siehe auch: BIPM – SI prefixes
- ↑ ANSI/IEEE Std 1084–1986 IEEE Standard Glossary of Mathematics of Computing Terminology, 30. Oktober 1986. Zitat: kilo (K). (1) A prefix indicating 1000. (2) In statements involving size of computer storage, a prefix indicating 210, or 1024. mega (M). (1) A prefix indicating one million. (2) In statements involving size of computer storage, a prefix indicating 220, or 1,048,576.
- ↑ BIPM – SI-Broschüre, 8. Auflage, März 2006, Abschnitt 3.1: SI-Präfixe. Randnotiz. [2]
- ↑ Berner Zeitung: Ist Mebi mehr als Kibi und weniger als Gibi? (23. November 2009)
- ↑ tecCHANNEL: Von Kibibits und Gibibytes – Akzeptanz mangelhaft, 30. Januar 2002.
- ↑ IEEE Periodicals, Transactions/Journals Department: Information for Authors. Revised: 1/06. (PDF, 943.576 B ≈ 943,6 kB ≈921,5 KiB)
- ↑ Das Kibibyte kommt. In: PC Games Hardware Forum, 1. Oktober 2007.
- ↑ Linux Programmer’s Manual; UNITS(7) (englisch)
- ↑ Coreutils – GNU core utilities
- ↑ Can I transfer file larger than 4 GiB (or 2 GiB)?
- ↑ How Mac OS X and iOS report storage capacity