Bits & Byte

Aus IV1

Einheiten der Informationsdarstellung: Bit und Byte

Wer immer sich über die Leistungsfähigkeit von Produkten aus dem Computerbereich infor-miert, wird dabei wahrscheinlich auf einige „magische” Werte (z.B. 128, 512, 4096, 32768, 65536, oder auch die um eins kleineren Zahlen, z.B. 32767) treffen. Als „Geheimnis” hinter all diesen Zahlen entpuppt sich die Zahl Zwei (128=27, 512=29, 4096=212, 32768=215, 65536=216).

Diese zentrale Rolle der Zahl Zwei ist kein Zufall: Informationen, die mit zwei Zustän¬den (nämlich Strom und kein Strom) dargestellt sind, lassen sich mit Hilfe elektronischer Schalt-elemente (in der Anfangszeit der Computer Relais und Röhren, heute ausschließlich Tran-sistoren) zu neuen Ergebnissen verknüpfen und können z.B. mit Hilfe magnetisierbarer Materialien (codiert z.B. durch die Magnetisierungsrichtung) über längere Zeit aufbewahrt werden.

Diese zwei Zustände (z.B. auf elektrischen Leitungen Strom / kein Strom, ...) lassen sich verschieden interpretieren: etwa als die logischen Werte „Falsch” und „Wahr”, oder als die beiden Ziffern 0 und 1 (manchmal auch – zur Unterscheidung von den zehn Dezimal¬ziffern – durch die beiden Buchstaben „O” und „L” repräsentiert).

Die letztere Interpretation gab einer Einheit, die genau zwei verschiedene Zustände ha¬ben kann, übrigens ihren Namen: Streicht man aus dem englischen ”binary digit” (zu deutsch: binäre Ziffer, Ziffer zur Basis Zwei) die mittleren Buchstaben heraus, ergibt sich – das Bit.

Lassen sich mit einem Bit zwei verschiedene Zustände darstellen, so können mit zwei Bit schon 4 (=22) verschiedene Zustände nachgebildet werden (nämlich 00, 01, 10 und 11), mit drei Bits 8 (=23), ... Allgemein: Mit n Bits lassen sich 2n verschiedene Zustände darstellen.

Fasst man acht Bit zusammen (damit können 28=256 verschiedene Zustände dargestellt wer-den; in der Regel genug, um alle Zeichen einer Sprache darstellen zu können), so er¬hält man als nächst größere Einheit ein Byte.

Selbstverständlich gibt es von diesen Bytes (wie auch den Bits) auch die gängigen Vielfachen, wie Kilo, Mega, Giga, ... Bei der Umrechnung spielt jedoch – im Gegensatz zum sonst üblichen Gebrauch – nicht die Zehn, sondern wiederum die Zwei die Hauptrolle: 1 kB (Kilobyte) = 1024 Byte (1024=210), 1 MB (Megabyte) = 1024 kB = 1.048.576 Byte, ...

Die letzte Einheit, die noch zu erwähnen wäre, ist das Wort. Dieses ist – abhängig vom verwendeten Computertyp – 2 oder 4 Byte groß und stellt üblicherweise die Menge an Information dar, die dieser Computer mit einem Arbeitsschritt verarbeiten kann.

Die Darstellung von Zahlen

Um eine Dezimalziffer darzustellen, benötigt man 4 Bits (da man mit 3 Bits nur 23=8 verschiedene Werte darstellen kann, sind drei Bits gerade noch zu wenig). Eine gängige Repräsentation von Dezimalziffern ist in Tab. 1.2/1 dargestellt.

0000...0 0100...4 1000...8 1100...nicht verwendet 0001...1 0101...5 1001...9 1101...nicht verwendet 0010...2 0110...6 1010...nicht verwendet 1110...nicht verwendet 0011...3 0111...7 1011...nicht verwendet 1111...nicht verwendet Tab. 1.2/1: BCD-Codierung

Mit dieser Darstellung (als binär kodierte Dezimalzahlen oder BCD-Darstellung von Zahlen bezeichnet) können in einem Byte zwei Dezimalziffern dargestellt werden (was allerdings nicht sehr effizient ist, da von 256 darstellbaren Werten pro Byte nur 100 ausgeschöpft werden).

Eine andere Darstellung von ganzen Zahlen (die Binärdarstellung von Zahlen) schöpft hin-gegen alle möglichen Bitkombinationen aus: So lassen sich z.B. in 16 Bit alle ganzen Zahlen von 0 bis 65535 bzw. (wenn ein Vorzeichen verwendet wird) von -32768 bis +32767 darstellen.

Sollen Zahlen mit Nachkommastellen (oder auch sehr große bzw. kleine Zahlen) darge¬stellt werden, bedient man sich eines ähnlichen „Tricks” wie die „wissenschaftliche Notation” von Zahlen (z.B. -2,64•10+8; bzw. auf dem Taschenrechner-Display: -2.64E+8): Die Zahl wird in eine Mantisse (in diesem Beispiel -2,64) sowie einen Expo¬nenten (im Beispiel: +8) zu einer vorher festgelegten Basis (im Beispiel: 10) zerlegt. Für die Darstel¬lung der Mantisse (die soweit „normalisiert” wird, dass sich das Dezimalkomma an einer bestimmten Stelle befindet, sodass eine „ganzzahlige” Darstellung möglich ist) und des Exponenten werden dann jeweils eine festgelegte Anzahl von Bits verwendet, wodurch einerseits der Wertebe¬reich, andererseits auch die Genauigkeit der darstellbaren Zahlen festgelegt ist (diese Dar¬stellung wird als Gleitkommadarstel¬lung von Zahlen bezeichnet). Die im PC-Bereich gängigen Gleitkommaformate mitsamt ihren wichtigsten Eigen¬schaften sind in Tab. 1.2/2 dargestellt.

Besondere Aufmerksamkeit verdient die Tabellenzeile „Genauigkeit”: Diese besagt nicht, dass alle Zahlen und Rechenergebnisse exakt darstellbar sind, sofern sie sich auf die angegebenen Dezimalstellen beschränken, sondern lediglich, dass sich das Rechenergebnis im Com¬puter vom tatsächlichen Rechenergebnis maximal in der Größenordnung der angegebenen Dezimalstelle unterscheiden kann. Es kommt also zu Ungenauigkeiten aufgrund der Zahlendarstellung , die sich leider durch weitere Rechenoperationen aufschaukeln und das Ge-samtergebnis z.T. signifikant verfälschen können (besonders an¬fällig hierfür sind Vergleichsoperationen und Rundungsfunktionen wie z.B. GANZZAHL() in Microsoft EXCEL).


Tab. 1.2/2: Gleitkommadarstellungen

Die Darstellung von (unformatierten) Texten

In einem Computer sollen allerdings nicht nur Zahlen, sondern auch Texte dargestellt werden können. Basis der Textdarstellung (ohne Schriftarten, Schriftgrößen, oder son¬stige Format-elemente) ist ein Zeichen, das in der Regel in einem Byte dargestellt wird. Die verschiedenen Bitkombinationen eines Bytes werden dabei gemäß einer Codetabelle den darzustellenden Zeichen zugeordnet.

Alle in den gängigen Personalcomputern verwendeten Zeichensätze basieren auf dem sog. ASCII-Code (ASCII ist die Abkürzung für „American Standard Code for Information Interchange”), der von ANSI (dem „American National Standards Institute”, dem Nor¬mungsgre-mium der USA) genormt wurde. Der ASCII-Code benutzt von den 8 Bit ei¬nes Bytes nur 7 Bit (das 8. Bit wird in der Regel auf 0 belassen) und belegt die Zeichen ge¬mäß Tab. 1.2/3.

ASCII

Die Zeichen des ASCII-Zeichensatzes gliedern sich in zwei Kategorien:

  • Darstellbare Zeichen werden zur Darstellung von (einzelnen) Textzeichen verwen¬det und werden in der obigen Tabelle durch ihren Wert repräsentiert. Dazu zählen die Groß- und Kleinbuchstaben („A”...„Z”, „a”...„z”), die Ziffern („0”...„9”), die Inter-punktionszeichen („.”, „:”, „!”, „?”, ...), einige Sonderzeichen („$”, „@”, „%”, ...) sowie das Leerzeichen (in der Tabelle als SPC für engl. „space” bezeichnet).
  • Nicht im ASCII-Zeichensatz enthalten sind die (europäischen) nationalen Sonderzei-chen, wie die deut¬schen Umlaute („Ä”, „Ö”, „Ü”, „ä”, „ö”, „ü”) oder das scharfe S („ß”). In einem rein amerikanischen Zei¬chensatz mussten sie nicht vorhanden sein; problematisch wurde die Situation jedoch, als der Zeichen¬satz „internationalisiert” wurde, indem Computer und Programme, die den betreffenden Zeichensatz verwen-deten, aus den USA exportiert bzw. außerhalb Amerikas entwickelt und erzeugt wurden.
  • Der Lösungsansatz, der in modernen Personalcomputern verwendet wird, ist im Prin-zip überall dersel¬be: die verbleibenden 128 Bitkombinationen eines Bytes werden verwendet, um zusätzliche Zeichen dar¬zustellen. Leider ist die Belegung dieser 128 Zeichen unterschiedlich ausgefallen, sowohl was die Aus¬wahl von Zeichen als auch was die Position von gemeinsamen Zeichen betrifft, sodass ein Austausch von Texten zwischen Personalcomputern unterschiedlichen Typs zu unerwarteten Ergeb-nissen führen kann.
  • Steuerzeichen dienen dazu, an Endgeräten verschiedene Funktionen auszulösen. Sie sind in der Tabelle durch ein zwei bis drei Zeichen langes Kürzel für ihre Funkti¬on (in kursiver Schrift) dargestellt. Die wichtigsten Steuerzeichen sind BS (backspace, Rück-schritt), HT (horizontal tab, Sprung zur nächsten Tabulatorposition), CR (carri¬age return, Wagenrück¬lauf), LF (line feed, Zeilenvorschub), FF (form feed, Seiten-vorschub), BEL (bell, Auslösung eines akusti¬schen Signals, z.B. eines Pfeiftons), sowie ESC (escape, ein Steuerzeichen, das Zeichenfolgen für Steuer¬funktionen ein¬leitet, die im ASCII-Zeichensatz nicht definiert sind).

000 001 010 011 100 101 110 111 ...0000 NUL DLE SPC 0 @ P ` p ...0001 SOH DC1 ! 1 A Q a q ...0010 STX DC2 " 2 B R b r ...0011 ETX DC3 # 3 C S c s ...0100 EOT DC4 $ 4 D T d t ...0101 ENQ NAK % 5 E U e u ...0110 ACK SYN & 6 F V f v ...0111 BEL ETB ' 7 G W g w ...1000 BS CAN ( 8 H X h x ...1001 HT EM ) 9 I Y i y ...1010 LF SUB * : J Z j z ...1011 VT ESC + ; K [ k { ...1100 FF FS , < L \ l | ...1101 CR GS - = M ] m } ...1110 SO RS . > N ^ n ˜ ...1111 SI US / ? O _ o DEL Tab. 1.2/3: ASCII-Zeichensatz

UNICODE

Abhilfe gegen die Mängel des ASCII-Zeichensatzes bietet der sog. UNICODE-Zeichensatz. Grundidee dieses Zeichensatzes ist es, alle Zeichen der gegenwärtig verwendeten (sowie auch der wichtigsten historischen) Schriften in einem Zeichensatz darstellen zu können. Dies beinhaltet auch die fernöstlichen Schriften (japanisch, chinesisch und koreanisch), die sich durch einen sehr großen Zeichenvorrat auszeichnen (da es sich bei diesen Schriften um Wort- bzw. Silbenschriften handelt). Da bei einem derart großen Zeichensatz mit einem Byte für die Darstellung eines Zeichens nicht das Auslangen gefunden werden kann, verwendet der UNICODE-Zeichensatz zwei Byte (16 Bit) zur Darstellung eines Zeichens. Vorkehrungen zur Verwendung des UNICODE-Zeichensatzes gibt es bereits in einigen gängigen Betriebs-systemen (z.B. Windows NT), Programmiersprachen (z.B. Java) und einigen anderen Pro-grammen, vor einem breiten Einsatz dieses Zeichensatzes sind jedoch umfangreiche Pro-grammumstellungen erfor¬derlich.

Darstellung von Bildern und Schall

Unsere Wahrnehmung der Außenwelt (in Form von Bildern, Abb. 1.2/1, oder Schall, Abb. 1.2/2) ist analoger Natur: In unseren Sinnen entsteht ein exaktes Abbild der Au¬ßenwelt, indem eine Größe der Außenwelt (im Fall von Bildern die Farbe, bei Schallwel¬len die Amplitude), die sich in Abhängigkeit des Ortes (statische Bilder), der Zeit (Schall), bzw. auch beider Bezugsgrößen (Bewegtbilder) ändern, in unseren Sinnesorga¬nen nachgebildet und transformiert werden. Der Genauigkeit, mit der diese Größen wahrgenommen werden, sind (zumindest theoretisch) keine Grenzen gesetzt.

BILDER

Um analoge Abbildungen mit Computersystemen bearbeiten, verarbeiten, speichern und transportieren zu können, müssen diese Größen in Einheiten bestimmter Größe zerlegt werden: ein Bild wird gerastert und so in Bildpunkte zerlegt (Abb. 1.2/3), eine Schall¬welle bzw. ein Bewegbild wird in gewissen Zeitabständen abgetastet (Abb. 1.2/4), und auch die Zielgröße wird auf gewisse Werte hin aproximiert (Abb. 1.2/5). Auf diese Weise erhält man für jeden Bildpunkt (Bilder) und/oder Zeitpunkt (Schall, Bewegbilder) einen (oder mehrere) Zahlenwert(e) als Abbildung der Zielgröße (Abb. 1.2/6), die dann digital (d.h. im Binär-system) dargestellt werden .

BILDER

Die Umkehrung des Vorgangs (zur Ausgabe des Bildes bzw. der Schallwelle) erfolgt, indem die digitalisierten Zielgrößen an den betreffenden Bildpunkten bzw. Zeitpunkten wieder in ihre analoge Form gebracht (und eventuell durch Zwischenwerte auf geeignete Weise verbunden werden; Abb. 1.2/7). Wird die Auflösung aller Größen klein genug gewählt, ist kein Unterschied zwischen dem regenerierten Bild bzw. der regenerierten Schallwelle und dem Original festzustellen.