Byte


aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Kilobyte)
Wechseln zu: Navigation, Suche
25px Dieser Artikel erläutert das Byte in der Informationstechnik. Für weitere Bedeutungen siehe Byte (Begriffsklärung).

Das Byte [baɪt] ist eine Maßeinheit der Digitaltechnik und der Informatik, das meist für eine Folge von 8 Bit steht. Historisch gesehen war ein Byte die Anzahl der Bits zur Kodierung eines einzelnen Text-Schriftzeichens im jeweiligen Computersystem und ist daher das kleinste adressierbare Element in vielen Rechnerarchitekturen. Um ausdrücklich auf eine Anzahl von 8 Bit hinzuweisen, wird auch die Bezeichnung Oktett verwendet; die früher dafür ebenfalls gängige Bezeichnung Oktade ist hingegen nicht mehr geläufig.

Definitionen

Was genau ein Byte bezeichnet, wird je nach Anwendungsgebiet etwas unterschiedlich definiert. Der Begriff kann stehen für:

  • eine Maßeinheit für eine Datenmenge von 8 Bit mit dem Einheitenzeichen „B“,<ref>IEC 60027-2, Ed. 3.0, (2005–2008): Letter symbols to be used in electrical technology – Part 2: Telecommunications and electronics.</ref> wobei es nicht auf die Ordnung der einzelnen Bits ankommt.
    Das Einheitszeichen sollte nicht mit dem zur Einheit Bel gehörenden Einheitszeichen „B“ verwechselt werden.
  • eine geordnete Zusammenstellung (n-Tupel) von 8 Bit, deren formale ISO-konforme Bezeichnung Oktett ist (1 Byte = 8 Bit). Ein Oktett wird manchmal in zwei Hälften (Nibbles) zu je 4 Bit zerlegt, wobei jedes Nibble durch eine hexadezimale Ziffer darstellbar ist. Ein Oktett kann also durch zwei Hexadezimalziffern dargestellt werden.
  • die kleinste, meist per Adressbus adressierbare, Datenmenge eines bestimmten technischen Systems. Die Anzahl an Bits pro Zeichen ist dabei fast immer eine natürliche Zahl. Beispiele:
    • bei Telex: 1 Zeichen = 5 Bit
    • bei Rechnern der Familien PDP: 1 Zeichen = <math>\log_2(50)</math> Bit = ca. 5,644 Bit (Radix-50-Code). Ergibt gegenüber 6 Bit eine Ersparnis von wenigen Bits pro Zeichenkette, die beispielsweise für Steuerungszwecke genutzt werden können. Allerdings gehen die Byte-Grenzen mitten durch die Bits, was die Analyse von Inhalten erschweren kann.
    • bei IBM 1401: 1 Zeichen = 6 Bit
    • bei ASCII: 1 Zeichen = 7 Bit
    • bei IBM-PC: 1 Zeichen = 8 Bit = 1 Oktett
    • bei Nixdorf 820: 1 Zeichen = 12 Bit
    • bei Rechnersystemen der Typen UNIVAC 1100/2200 und OS2200 Series: 1 Zeichen = 9 Bit (ASCII-Code) bzw. 6 Bit (FIELDATA-Code)
    • bei Rechnern der Familie PDP-10: 1 Zeichen = 1…36 Bit, Bytelänge frei wählbar
  • einen Datentyp in Programmiersprachen. Die Anzahl an Bits pro Byte kann je nach Programmiersprache und Plattform variieren (meistens 8 Bit).
  • ISO-C99 definiert 1 Byte als eine zusammenhängende Folge von mindestens 8 Bit.<ref>Rationale for International Standard— Programming Languages— C. April 2003, S. 217, abgerufen am 28. November 2009 (PDF; 898 kB, english).</ref>

Bei den meisten heutigen Rechnern fallen diese Definitionen (kleinste adressierbare Einheit, Datentyp in Programmiersprachen, C-Datentyp) zu einer einzigen zusammen und sind dann von identischer Größe.

Der Begriff „Byte“ wird aufgrund der großen Verbreitung von Systemen, die auf acht Bit (bzw. Zweierpotenzvielfache davon) basieren, für die Bezeichnung einer 8-Bit-breiten Größe verwendet, die in formaler Sprache (entsprechend ISO-Normen) aber korrekt Oktett (englisch: octet) heißt. Als Maßeinheit bei Größenangaben wird in der deutschen Sprache der Begriff „Byte“ (im Sinne von 8 bit) verwendet. Bei der Übertragung kann ein Byte parallel (alle Bits gleichzeitig) oder seriell (alle Bits nacheinander) übertragen werden. Zur Sicherung der Richtigkeit werden oft Prüfbits angefügt. Bei der Übertragung größerer Mengen sind weitere Kommunikationsprotokolle möglich. So werden bei 32-Bit-Rechnern oft 32 Bits (vier Byte) gemeinsam in einem Schritt übertragen, auch wenn nur ein 8-Bit-Tupel übertragen werden muss. Das ermöglicht eine Vereinfachung der zur Berechnung erforderlichen Algorithmen und einen kleineren Befehlssatz des Computers.

Grundsätzlich hat jede Maßeinheit ein Einheitenkürzel sowie einen ausgeschriebenen Namen. Bei Bit und Byte sind dies

Kürzel ausgeschriebener Name
bit (selten „b“) Bit
B (selten „byte“) Byte

Der ausgeschriebene Name unterliegt grundsätzlich der normalen Deklination. Aufgrund der großen Ähnlichkeit der Kürzel mit den ausgeschriebenen Einheitennamen sowie entsprechender Pluralformen in der englischen Sprache werden jedoch gelegentlich auch die Einheitenkürzel „bit“ und „byte“ mit Plural-s versehen.

Geschichte des Begriffs

Bit ist ein Kofferwort aus Binary und digit, heißt also zweiwertige Ziffer – Null oder Eins. Dessen Bestandteile lassen sich auf die lateinischen Wörter digitus (Finger), den bzw. die man seit der Antike zum Zählen verwendet (vgl. Plautus: „computare digitis“) und lateinisch (genauer neulateinisch) binarius (zweifach), vgl. lateinisch bis (zweimal), zurückführen.

Das Wort Byte ist künstlich und stammt von englisch bit (deutsch: bisschen) und bite (deutsch: Bissen) ab. Verwendet wurde es, um eine Speichermenge oder Datenmenge zu kennzeichnen, die ausreicht, um ein Zeichen darzustellen. Der Begriff wurde 1956 von Werner Buchholz geprägt in einer frühen Designphase eines IBM-Computers, damals noch in der Schreibweise Bite.<ref>Byte definition (Memento vom 28. Juli 2007 im Internet Archive) (englisch)</ref> Im Original beschrieb er eine Breite von sechs Bit und stellte die kleinste direkt adressierbare Speichereinheit eines entsprechenden Computers dar, und damit konnte man die Buchstaben und gängige Sonderzeichen zum Beispiel in Quelltexten von Programmen oder anderen Texten speichern (also <math>2^6 = 64</math> verschiedene Zeichen). Die Schreibweise Bite wurde später in Byte geändert, um versehentliche Verwechslungen mit Bit zu vermeiden.

In den 1960er Jahren wurde der sich in seiner Verwendung schnell ausbreitende ASCII-Zeichensatz definiert, der noch mit einer Bittiefe von sieben Bit auskam. Später wurden um ein Bit erweiterte ASCII-Zeichensätze verwendet, die auch die häufigsten internationalen Diakritika abbilden konnten, wie zum Beispiel die Codepage 437. In diesen erweiterten ASCII-Zeichensätzen entspricht jedes Zeichen exakt einem Byte mit acht Bit.

In den 1960er und 1970er Jahren war in Westeuropa auch die Bezeichnung Oktade geläufig, wenn speziell 8 Bit gemeint waren. Diese Bezeichnung geht möglicherweise auf den niederländischen Hersteller Philips zurück, in dessen Unterlagen zu Mainframe-Computern sich die Bezeichnung Oktade (bzw. englisch: oktad(s)) regelmäßig findet.<ref>Philips – Philips Data Systems’ product range – April 1971. Philips. 1971. Abgerufen am 3. August 2015.</ref><ref>R. H. Williams: British Commercial Computer Digest: Pergamon Computer Data Series. Pergamon Press. 1. Januar 1969. 978-1483122106. Abgerufen am 3. August 2015.</ref>

Für kurze Zeit hat es um 1970 4-Bit-Prozessoren gegeben, deren 4-Bit-Datenwörter (auch Nibbles genannt) mit hexadezimalen Ziffern dargestellt werden konnten. 8-Bit-Prozessoren wurden schon kurz nach der Erfindung der Programmiersprachen C und Pascal eingeführt, also Anfang der 1970er Jahre, und waren in Heimcomputern bis in die 1980er Jahre im Einsatz (bei eingebetteten Systemen auch heute noch), deren 8-Bit-Datenwörter (respektive Bytes) mit genau zwei hexadezimalen Ziffern dargestellt werden können. Seitdem hat sich die Breite der Datenwörter von Hardware von 4 über 8, 16, 32 bis heute zu 64 und 128 Bit hin immer wieder verdoppelt.

Zur Unterscheidung der ursprünglichen Bedeutung als kleinste adressierbare Informationseinheit und der Bedeutung als 8-Bit-Tupel wird in der Fachliteratur (abhängig vom Fachgebiet) korrekterweise auch der Begriff Oktett für letzteres benutzt, um eine klare Trennung zu erzielen.

Praktische Verwendung

In der elektronischen Datenverarbeitung bezeichnet man die kleinstmögliche Speichereinheit als Bit. Ein Bit kann zwei mögliche Zustände annehmen, die meist als „Null“ und „Eins“ bezeichnet werden. In vielen Programmiersprachen wird für ein einzelnes Bit der Datentypboolean“ (respektive „Boolean“ oder „BOOLEAN“) verwendet. Aus technischen Gründen erfolgt die tatsächliche Abbildung eines Boolean aber meist in Form eines Datenwortes.

Acht solcher Bits werden zu einer Einheit – sozusagen einem Datenpäckchen – zusammengefasst und allgemein Byte genannt. Die offizielle ISO-konforme Bezeichnung lautet dagegen Oktett: 1 Oktett = 1 Byte = 8 bit. Viele Programmiersprachen unterstützen einen Datentyp mit dem Namen „byte“ (respektive „Byte“ oder „BYTE“), wobei zu beachten ist, dass dieser je nach Definition als ganze Zahl, als Bitmenge, als Element eines Zeichensatzes oder bei typunsicheren Programmiersprachen sogar gleichzeitig für mehrere dieser Datentypen verwendet werden kann, sodass keine Zuweisungskompatibilität mehr gegeben ist.

Das Byte ist die Standardeinheit, um Speicherkapazitäten oder Datenmengen zu bezeichnen. Dazu gehören Dateigrößen, die Kapazität von permanenten Speichermedien (Festplattenlaufwerke, CDs, DVDs, Blu-ray Discs, Disketten, USB-Massenspeichergeräte und so weiter) und die Kapazität von vielen flüchtigen Speichern (zum Beispiel Arbeitsspeicher). Übertragungsraten (zum Beispiel die maximale Geschwindigkeit eines Internet-Anschlusses) gibt man dagegen üblicherweise auf der Basis von Bits an.

Bedeutungen von Dezimal- und Binärpräfixen für große Anzahlen von Bytes

SI-Präfixe

Für Datenspeicher mit binärer Adressierung ergeben sich Speicherkapazitäten von 2n Byte, d. h. Zweierpotenzen. Da es bis 1996 keine speziellen Einheitenvorsätze für Zweierpotenzen gab, war es üblich, die eigentlich dezimalen SI-Präfixe im Zusammenhang mit Speicherkapazitäten zur Bezeichnung von Zweierpotenzen zu verwenden (mit Faktor 210 = 1024 statt 1000). Ein Beispiel:

  • 1 Kilobyte (kB) = 1024 Byte, 1 Megabyte (MB) = 1024 Kilobyte = 1024 × 1024 Byte = 1 048 576 Byte usw.

Vereinzelt kommen auch Mischformen vor, etwa bei der Speicherkapazität einer 3,5-Zoll-Diskette: 1,44 MB = 1440 kB = 1440 × 1024 Byte.

Die Verwendung der SI-Präfixe zur Bezeichnung von Binärwerten (Zweierpotenzen) wird ausdrücklich nicht mehr empfohlen, siehe Abschnitt „IEC-Präfixe“.

IEC-Präfixe

Um Mehrdeutigkeiten zu vermeiden, schlug die IEC 1996 neue Einheitenvorsätze vor, die nur in der binären Bedeutung verwendet werden sollten.<ref>Vgl. internationale Norm IEC 60027-2: 2005, 3. Auflage, Letter symbols to be used in electrical technology – Part 2: Telecommunications and electronics veröffentlicht.</ref> Ein Beispiel:

  • 1 Kibibyte (KiB) = 1024 Byte, 1 Mebibyte (MiB) = 1024 × 1024 Byte = 1 048 576 Byte.

Das für die SI-Präfixe zuständige Internationale Büro für Maß und Gewicht (BIPM) empfiehlt diese Schreibweise und rät von der binären Verwendung der SI-Präfixe ausdrücklich ab. Die Bezeichnung von Zweierpotenzen durch Binärpräfixe gemäß der bisherigen IEC 60027-2,<ref>BIPM – SI-Broschüre, 8. Auflage, März 2006, Abschnitt 3.1: SI-Präfixe. Randnotiz; BIPM: Decimal multiples and submultiples of SI units – SI Brochure: The International System of Units (SI) [8th edition, 2006; updated in 2014] (englisch), mit „kibibyte“; abgerufen am 7. April 2015</ref> wurde durch die weltweite ISO-Norm IEC 80000-13:2008 (bzw. DIN EN 80000-13:2009-01) gleichlautend ersetzt (also übernommen). Außerdem wurde empfohlen, die SI-Präfixe nur noch in der dezimalen Bedeutung zu benutzen, damit sich sowohl für Zweierpotenzen als auch für Zehnerpotenzen eindeutige Bezeichnungen ergeben, z. B.:

  • 1 Kilobyte (kB) = 1000 Byte, 1 Megabyte (MB) = 1000 · 1000 Byte = 1 000 000 Byte.

Viele Standardisierungsorganisationen schlossen sich dieser Empfehlung an (siehe Binärpräfix)

Vergleich

Eine Übersicht über die möglichen Einheitenvorsätze und deren Bedeutungen bietet die folgende Tabelle:

Dezimalpräfixe       Binärpräfixe
Name
(Symbol)
Bedeutung<ref group="G">SI-Präfixe sind nur für SI-Einheiten standardisiert; Byte ist keine SI-Einheit</ref> Unterschied
(gerundet)
IEC-Name
(IEC-Symbol)
Bedeutung
Kilobyte (kB)<ref group="G">wird gelegentlich mit „KB“ abgekürzt</ref> 103 Byte = 1 000 Byte 2,40 % Kibibyte (KiB)<ref group="G">wird gelegentlich mit „KB“ oder umgangssprachlich „K“ abgekürzt, mitunter um den Unterschied zu „kB“ zu kennzeichnen (nicht standardisiert)</ref> 210 Byte = 1024 Byte
Megabyte (MB) 106 Byte = 1 000 000 Byte 4,86 % Mebibyte (MiB) 220 Byte = 1 048 576 Byte
Gigabyte (GB) 109 Byte = 1 000 000 000 Byte 7,37 % Gibibyte (GiB) 230 Byte = 1 073 741 824 Byte
Terabyte (TB) 1012 Byte = 1 000 000 000 000 Byte 9,95 % Tebibyte (TiB) 240 Byte = 1 099 511 627 776 Byte
Petabyte (PB) 1015 Byte = 1 000 000 000 000 000 Byte 12,6 % Pebibyte (PiB) 250 Byte = 1 125 899 906 842 624 Byte
Exabyte (EB) 1018 Byte = 1 000 000 000 000 000 000 Byte 15,3 % Exbibyte (EiB) 260 Byte = 1 152 921 504 606 846 976 Byte
Zettabyte (ZB) 1021 Byte = 1 000 000 000 000 000 000 000 Byte 18,1 % Zebibyte (ZiB) 270 Byte = 1 180 591 620 717 411 303 424 Byte
Yottabyte (YB) 1024 Byte = 1 000 000 000 000 000 000 000 000 Byte 20,9 % Yobibyte (YiB) 280 Byte = 1 208 925 819 614 629 174 706 176 Byte

<references group="G" />

Für größere Dezimal- und Binärpräfixe wird die Unterscheidung bedeutender, da die nominelle Differenz größer wird. So beträgt sie zwischen kB und KiB nur 2,4 %, zwischen TB und TiB hingegen bereits 10 %.

Kapazitätsangaben bei Speichermedien

Die Hersteller von Massenspeichermedien, wie Festplatten, DVD-Rohlingen und USB-Speicher-Sticks, verwenden die Dezimal-Präfixe, wie es bei internationalen Maßeinheiten üblich ist, um die Speicherkapazität ihrer Produkte anzugeben. Daraus ergibt sich beispielsweise das Problem, dass ein mit „4,7 GB“ gekennzeichneter DVD-Rohling von Software, die entgegen dem o. g. Standard (nämlich bei „GB“ die Zehnerpotenzen zu verwenden) die Zweierpotenzen verwendet (so zum Beispiel der Windows Explorer), mit dem formal unterschiedlichen Wert von „4,38 GB“ (richtiger wäre hier „4,38 GiB“ anzuzeigen, um den Unterschied deutlich zu machen) angezeigt wird, obwohl in beiden Fällen rund 4,7 Gigabyte (4 700 000 000 Byte) gemeint sind. Ebenso wird in solchen Fällen eine mit „1 TB“ spezifizierte Festplatte mit der scheinbar deutlich kleineren Kapazität von etwa „931 GB“ oder „0,9 TB“ erkannt (auch hier sollte eigentlich „931 GiB“, bzw. „0,9 TiB“ angezeigt werden), obwohl in allen drei Fällen jeweils rund 1,0 Terabyte (1 000 000 000 000 Byte) gemeint sind. Andererseits enthält ein mit „700 MB“ gekennzeichneter CD-Rohling tatsächlich 700 MiB (734 003 200 Byte), also etwa 734 MB (und sollte somit streng genommen mit „700 MiB“ ausgezeichnet werden).

Seit Version 10.6<ref>Eric Schäfer: Dateigrößen: Snow Leopard zählt anders. In: Mac Life. 28. August 2009.</ref> benutzt Apples OS X konsequent Dezimalpräfixe nur in ihrer dezimalen Bedeutung. KDE folgt dem IEC-Standard und lässt dem Anwender die Wahl zwischen binären und dezimalen Angaben. Für Linux-Distributionen mit anderen Desktopumgebungen, wie z. B. Ubuntu ab Version 11.04,<ref>UnitsPolicy. Ubuntu, abgerufen am 24. April 2010 (english).</ref> gibt es klare Richtlinien, wie Anwendungen Datenmengen angeben sollen; hier findet man beide Angaben, es überwiegen aber die Binärpräfixe.

Siehe auch

Weblinks

Wiktionary Wiktionary: Byte – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen
Wiktionary Wiktionary: byte – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen

Quellen

<references />