Informationsdarstellung
Bits & Bytes
Wer immer sich über die Leistungsfähigkeit von Produkten aus dem Computerbereich informiert, 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 „Geheim¬nis” hinter all diesen Zahlen entpuppt sich die Zahl Zwei (128=27 bit, 512=29, 4096=212, 32768=215, 65536=216).
Diese zentrale Rolle der Zahl Zwei ist kein Zufall: Informationen, die mit zwei Zuständen (nämlich Strom und kein Strom) dargestellt sind, lassen sich mit Hilfe elektronischer Schaltelemente (in der Anfangszeit der Computer Relais und Röhren, heute ausschließlich Transistoren) 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 Dezimalziffern – durch die beiden Buchstaben „O” und „L” repräsentiert).
Die letztere Interpretation gab einer Einheit, die genau zwei verschiedene Zustände haben 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 werden; in der Regel genug, um alle Zeichen einer Sprache darstellen zu können), so erhä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, 4 oder 8 Byte (16-Bit-, 32-Bit- oder 64-Bit-Prozessoren) groß und stellt üblicherweise die Menge an Information dar, die dieser Computer mit einem Arbeitsschritt verarbeiten kann.
Darstellung von Zahlen
BCD-Codierung
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 mögliche Repräsentation von Dezimalziffern, auch binär kodierte Dezimalzahlen oder BCD-Darstellung bezeichnet, ist in folgender Tabelle abgebildet:
Dezimalziffer | BCD-kodiert |
---|---|
0 | 0 0 0 0 |
1 | 0 0 0 1 |
2 | 0 0 1 0 |
3 | 0 0 1 1 |
4 | 0 1 0 0 |
5 | 0 1 0 1 |
6 | 0 1 1 0 |
7 | 0 1 1 1 |
8 | 1 0 0 0 |
9 | 1 0 0 1 |
Binärdarstellung
Die Binärdarstellung von Zahlen schöpft hingegen 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. Bei 32 Bit wären das die ganzen Zahlen von 0 bis 4294967295 bzw. -2147483648 bis 2147483647.
Gleitkommadarstellung
Sollen Zahlen mit Nachkommastellen (oder auch sehr große bzw. kleine Zahlen) dargestellt werden, bedient man sich eines ähnlichen „Tricks” wie die „wissenschaftliche Notation” von Zahlen (z.B. -2,6410·108; bzw. auf dem Taschenrechner-Display: -2.64E+8): Die Zahl wird in eine Mantisse (in diesem Beispiel -2,64) sowie einen Exponenten (im Beispiel: +8) zu einer vorher festgelegten Basis (im Beispiel: 10) zerlegt. Für die Darstellung 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 Wertebereich, andererseits auch die Genauigkeit der darstellbaren Zahlen festgelegt ist (diese Darstellung wird als Gleitkommadarstellung von Zahlen bezeichnet). Die im PC-Bereich gängigen Gleitkommaformate mitsamt ihren wichtigsten Eigenschaften sind in nachstehender Tabelle dargestellt:
Format | "short" | "long" | "extended" |
Größe [Bits] | 32 | 64 | 80 |
Größe [Bytes] | 4 | 8 | 10 |
kleinster darstellbarer Wert | ≈1,175·10-38 | ≈2,225·10-308 | ≈3,362·10-4932 |
größter darstellbarer Wert | ≈3,403·10+38 | ≈1,798·10+308 | ≈1,190·10+4932 |
Genauigkeit | ≈7 | ≈16 | ≈19 |
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 Computer 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 Gesamtergebnis z.T. signifikant verfälschen können (besonders anfällig hierfür sind Vergleichsoperationen und Rundungsfunktionen wie z.B. GANZZAHL() in Microsoft EXCEL).
Darstellung von Texten
In einem Computer sollen allerdings nicht nur Zahlen, sondern auch Texte dargestellt werden können. Basis der Textdarstellung (ohne Schriftarten, Schriftgrößen, oder sonstige Formatelemente) 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.
ASCII-Code
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 Normungsgremium der USA) genormt wurde. Der ASCII-Code benutzt von den 8 Bit eines Bytes nur 7 Bit (das 8. Bit wird in der Regel auf 0 belassen) und belegt die Zeichen gemäß nachstehender Tabelle:
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 | FT | FS | , | < | L | \ | " | |
...1101 | CR | GS | - | = | M | ] | m | } |
...1110 | SO | RS | . | > | N | ^ | n | ~ |
...1111 | SI | US | / | ? | 0 | _ | 0 | DEL |
Die Zeichen des ASCII-Zeichensatzes gliedern sich in zwei Kategorien:
Darstellbare Zeichen
Darstellbare Zeichen werden zur Darstellung von (einzelnen) Textzeichen verwendet 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 Sonderzeichen, wie die deutschen Umlaute („Ä”, „Ö”, „Ü”, „ä”, „ö”, „ü”) oder das scharfe S („ß”). In einem rein amerikanischen Zeichensatz mussten sie nicht vorhanden sein; problematisch wurde die Situation jedoch, als der Zeichen¬satz „internationalisiert” wurde, indem Computer und Programme, die den betreffenden Zeichensatz verwendeten, aus den USA exportiert bzw. außerhalb Amerikas entwickelt und erzeugt wurden.
Der Lösungsansatz, der in modernen Personalcomputern verwendet wird, ist im Prinzip überall derselbe: 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 Auswahl von Zeichen als auch was die Position von gemeinsamen Zeichen betrifft, sodass ein Austausch von Texten zwischen Personalcomputern unterschiedlichen Typs zu unerwarteten Ergebnissen führen kann.
Steuerzeichen
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).
UNICODE-Zeichensatz
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 Betriebssystemen (z.B. Windows), Programmiersprachen (z.B. Java) und einigen anderen Programmen.
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 Schallwellen die Amplitude), die sich in Abhängigkeit des Ortes (statische Bilder), der Zeit (Schall), bzw. auch beider Bezugsgrößen (Bewegtbilder) ändern, in unseren Sinnesorganen nachgebildet und transformiert werden. Der Genauigkeit, mit der diese Größen wahrgenommen werden, sind (zumindest theoretisch) keine Grenzen gesetzt.