Oktett (Informatik)

Ein Oktett (englisch octet, informell Byte) ist in der Informatik und Digitaltechnik die Bezeichnung für eine geordnete Zusammenstellung (ein Tupel) von 8 Bit.

Oktett vs. Byte vs. Zeichen

Da ein Oktett stets aus 8 Bit besteht, kann es 28 = 256 verschiedene Zustände darstellen. Der Begriff wird oftmals synonym mit Byte verwendet. In Standards zur Datenübertragung (IETF, ITU-T) wird der Begriff häufig verwendet.

Als Maßeinheit zur Angabe von Datenmengen dient die von Bit abgeleitete Einheit Byte, wobei hier 1 Byte als 8 Bits definiert wurde. Gerade in Normen oder in der DFÜ (in der oft Stoppbits usw. hinzukommen) wird jedoch häufig die genauere Bezeichnung Oktett verwendet. So ist nach dem internationalen Standard IEC 60027-2, Kapitel 3.8.2, ein Byte ein Oktett von Bits, enthält also genau 8 Bit.

Nicht verwechselt werden sollte das Oktett mit einem Zeichen, da ein Multi-Byte-Zeichen durchaus aus mehreren Oktetten bestehen kann.

Hauptspeicher-Adressierung

Die kleinste von heutigen CPUs adressierbaren Objekte sind meistens Oktets. Es gibt aber auch CPUs, deren kleinste adressierbaren Objekte 24 bit oder 32 Bit sind (Beispiele: TI DSP 56000 und TI TMS C320C40). Kleinere Objekte können nicht adressiert werden und damit nicht als Referenzen auftreten: Bits, Halboktetts (Nibbles). Schreibzugriffe können nur über komplexere Manipulationsoperationen durchgeführt werden. Allgemein gilt das für alle Objekte, die nicht an Grenzen der kleinsten adressierbaren Objekte Halt machen (Beispiele: 12 bit oder aber auch 16-bit-Bitfelder in einer Struktur). 32- und 64-Bit-Rechner speichern Worte mit 32 bzw. 64 Bits (4 bzw. 8 Oktets) auf 4 bzw. 8 unterschiedlichen Adressen.

Die Grundlage für den heutigen Standard, dass ein Byte aus acht Bit besteht und die kleinste Einheit der Hauptspeicheradressierung ist, wurde vom Unternehmen IBM mit der S/360-Architektur am 7. April 1964 gelegt.[1]

Wertumfang

Ein Oktett kann 28 = 256 verschiedene Zustände darstellen, die unterschiedlich interpretiert werden können. Man kann darin z. B. speichern:

  • einen vorzeichenlosen Integer-Wert als Binärzahl (Wertebereich von 0 bis 255)
  • einen vorzeichenlosen Integer-Wert als packed BCD (Wertebereich von 0 bis 99)
  • einen vorzeichenbehaftete Integer-Wert im Einerkomplement (Wertebereich von −127 bis +127)
  • einen vorzeichenbehaftete Integer-Wert als Vorzeichen und Betrag (Wertebereich von −127 bis +127)
  • einen vorzeichenbehaftete Integer-Wert im Zweierkomplement (Wertebereich von −128 bis +127)
  • einen vorzeichenbehaftete Integer-Wert als Binärzahl mit Bias −128 (Wertebereich von −128 bis +127)
  • einen vorzeichenlose Integer-Wert als Binärzahl mit Bias +256 (Wertebereich von 256 bis 511)
  • 8 Flags bzw. 8 einstellige Binärzahlen
  • 5 Zahlen aus der Menge (−1, 0, +1)
  • ein ASCII-Zeichen (Wertebereich von NUL bis DEL)
  • ein EBCDIC-Zeichen
  • ein Zeichen der Codepage 1252 (Wertebereich von NUL bis ÿ)
  • ein UTF-8-Zeichens oder einen Teil eines Multi-Character-UTF-8-Zeichens

Alle diese Datentypen sind nur unterschiedliche Interpretationen des gleichen Bitmusters. Zum Beispiel entspricht ein Oktett mit dem Integer-Wert 65 in der ASCII-Codierung dem Zeichen „A“. Neben dem verbreiteten ASCII existieren auch proprietäre Zeichenkodierungen, wie beispielsweise EBCDIC, welcher auf IBM-Großrechnern verwendet wird.

Darstellung in verschiedenen Stellenwertsystemen

Hexadezimalsystem

Häufig werden die Werte von Oktetten in Hexadezimalschreibweise angegeben, z. B. für den Dezimalwert „65“ als „4116“, „0x41“, „$41“ oder „41h“; die drei letzten Schreibweisen sollen kennzeichnen, dass es sich um einen Hexadezimalwert handelt. Zur vollständigen Darstellung eines Oktetts werden zwei Hexadezimal-Stellen benötigt.

Ein Oktett kann in zwei Semi-Oktetts, Quadbit oder Quartett zu je 4 Bit unterteilt werden. In Hexadezimalschreibweise entspricht jedes Semi-Oktett einer Hexadezimalstelle.

Binärsystem

Manchmal wird der Wert eines Oktetts auch als Binärzahl angegeben. Beispiel für die Binärschreibweise des Oktetts mit dem Dezimalwert 65:

Wertigkeit 128 64 32 16  8  4  2  1
Bitnummer    7  6  5  4  3  2  1  0
Binärzahl    0  1  0  0  0  0  0  1

Berechnung des Dezimalwerts:

0 128 + 1 64 + 0 32 + 0 16 + 0 8 + 0 4 + 0 2 + 1 1 = 64 + 1 = 65 {\displaystyle 0\cdot 128+1\cdot 64+0\cdot 32+0\cdot 16+0\cdot 8+0\cdot 4+0\cdot 2+1\cdot 1=64+1=65}

Dabei steht üblicherweise links das Bit mit der höchsten Wertigkeit (most significant bit, MSB) und rechts das mit der niedrigsten (least significant bit, LSB). Die Zählung der Bitpositionen beginnt normalerweise rechts mit 0, d. h. beispielsweise, „das dritte Bit“ ist „Bit 2“ und steht an dritter Stelle von rechts.

Alternative Definition

In manchen Fällen wird auch ein Tripel von 3 Bits (traditionell eine Triade[2][3]) als Oktett bezeichnet, was damit zusammenhängt, dass mit 3 Bit acht verschiedene Werte darstellbar sind, also eine Oktal-Ziffer. Diese Bezeichnung wurde z. B. für die drei Zugriffsrechte-Bits (Lesen, Schreiben, Ausführen) in Unix-artigen Dateisystemen verwendet (siehe auch chmod). In neueren Beschreibungen von chmod wird der Begriff aber nicht mehr verwendet, um Verwechselungen mit einem 8-Bit-Oktett zu vermeiden.

Einzelnachweise

  1. Wilhelm G. Spruth, Paul Herrmann, Udo Kebschull: Einführung in z/os und OS/390 2004. S. 7.
  2. Reinhold Paul: Leitfaden der Informatik (= Elektrotechnik und Elektronik für Informatiker - Grundgebiete der Elektronik. Band 2). B.G. Teubner Stuttgart / Springer, 2013, ISBN 978-3-322-96652-0 (google.de [abgerufen am 3. August 2015]). 
  3. Gert Böhme, Werner Born, B. Wagner, G. Schwarze: Programmierung von Prozeßrechnern (= Reihe Automatisierungstechnik. Band 79). Springer Verlag, 2013, ISBN 978-3-663-00808-8, doi:10.1007/978-3-663-02721-8 (google.de – VEB Verlag Technik Berlin, 1969).