Next: Reise durch's Dateisystem
Up: Grundlagen
Previous: Die ersten Schritte
Die internen Abläufe aller Computer sind in Speichereinheiten, sogenannten Bytes organisiert. Um Daten aus der realen Welt mit einem Computer bearbeiten zu können, müssen sie im Arbeitsspeicher vorliegen. Dazu müssen sie so dargestellt werden, daß sie in die Speichereinheiten passen.
Die in der Regel analogen Daten der realen Welt werden für ihre Repräsentation im Computer ,,digitalisiert`` oder ,,codiert``. Zur Codierung finden verschiedene Modelle Verwendung.
Als Formate für die digitale Darstellung von Daten sind vor allem fünf Typen von Bedeutung:
Jede natürliche Zahl läßt sich im binären Zahlensystem darstellen.
Internationale Zeichen, wie zum Beispiel die deutschen Umlaute, sind in dieser Tabelle nicht enthalten. Für die internationalen Zeichensätze gibt es verschiedene Tabellen. Unter Linux sind zwei Tabellen von besonderer Bedeutung:
Wie schon gesagt, kann ein Byte durch eine Dezimalzahl dargestellt werden, indem alle möglichen Bytes aus je acht Bits von 0 bis 255 abgezählt werden. Es ist aber ebensogut möglich, das höchste Bit eines Bytes als Vorzeichen zu interpretieren. Damit wird die Menge aller Bytes auf die Zahlen von -128 bis 127 abgebildet. Bei der Darstellung von Binärzahlen beziehungsweise Bytes durch Dezimalzahlen muß also immer darauf geachtet werden, ob die Dezimalzahlen mit einem Vorzeichen behaftet sind oder nicht.
Die Darstellung von Dezimalzahlen größer als 255 bzw. kleiner als -128 im Computer wird durch die Verwendung mehrerer Bytes für eine Zahl realisiert. Mit zwei Bytes können kleine natürliche Dezimalzahlen (short integer) von 0 bis 65535 bzw. ganze Zahlen von -32768 bis 32767 dargestellt werden. Größere Zahlen müssen durch entsprechend mehr Bytes codiert werden. Der GNU-C-Compiler von Linux bietet standarmäßig vier Byte große long integer an.
Als annäherndes Modell für rationale oder reelle Zahlen benutzen Computer Fließkommazahlen. Eine Fließkommazahl mit einfacher Genauigkeit (float) wird intern durch vier Bytes (=32 Bits) dargestellt, von denen ein Bit das Vorzeichen, 8 Bit den Exponenten mit eigenem Vorzeichen und die restlichen 23 Bit die Mantisse darstellen. Fließkommazahlen mit doppelter Genauigkeit (double) werden unter Linux normalerweise durch acht Bytes mit 11 Bit Exponenten und 52 Bit Mantisse dargestellt. Transzendente Zahlen können vom Computer nicht dargestellt und deshalb auch nicht bearbeitet werden. Rationale Zahlen, die außerhalb des hier dargestellten Bereichs liegen, können unter Linux nicht mit Standardfunktionen berechnet werden.
Mit speziellen Funktionen können natürlich von einem Computer weit größerer Genauigkeiten erreicht werden. Indem immer mehr Bytes zur Darstellung einer Zahl herangezogen werden lassen sich reele Zahlen theoretisch beliebig weit annähern. Allein der verfügbare Speicherplatz begrenzt diese Beliebigkeit.
Der Vorteil des oktalen Zahlensystems besteht in der leichten Umrechenbarkeit von Oktalzahlen in Binärzahlen und umgekehrt. Weil die Oktalzahlen ,,handlicher`` sind als ihre binären Äquivalente, werden sie gern zur Darstellung von Bytes verwendet.
Im Hexadezimalsystem entspricht ein Byte aus acht Bits genau einer zweistelligen Hexadezimalzahl.
Es ist üblich, Zahlen mit einer führenden Null als Oktalzahl zu interpretieren und Hexadezimalzahlen durch den Präfix 0x zu kennzeichnen. Wenn aus dem Zusammenhang eines Textes nicht deutlich wird, in welchem Zahlensystem gerechnet wird, kann durch eine kleine tiefgestellte Zahl die entsprechende Zahlenbasis angegeben werden.
Das Linux Anwenderhandbuch