Dieses Handbuch wird mit freundlicher Genehmigung von Sebastian Hetze auf den Servern der Linux Information Systems AG gehosted.

next up previous contents index
Next: Reise durch's Dateisystem Up: Grundlagen Previous: Die ersten Schritte

Zahlensysteme

  

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:

Binärzahl
  Ein Byte besteht auf den meisten Computern aus acht Bits, die jeweils gesetzt oder ungesetzt sein können. Diesen beiden Zuständen kann einfach jeweils eine Zahl zugeordnet werden - die 1 für gesetzt und die 0 für ungesetzt - und damit ein Byte als eine achtstellige Binärzahl dargestellt werden. Eine achtstellige Binärzahl kann 2 hoch 8 = 256 verschiedene Kombinationen von Nullen und Einsen enthalten und damit beispielsweise von 0 bis (dezimal) 255 zählen. Mit diesen Zahlen läßt sich rechnen wie mit den ,,normalen`` Dezimalzahlen. Dieser faszinierenden Eigenschaft und der boolschen Algebra verdanken wir erst die Möglichkeit, Computer zum Rechnen zu benutzen.

Jede natürliche Zahl läßt sich im binären Zahlensystem darstellen.

Zeichen
  Die modernen Computer werden zu einem großen Teil nicht zum Berechnen von Zahlen, sondern zum Bearbeiten von allgemeineren Daten benutzt. Die meisten dieser Daten sind Texte irgendeiner Art. Daher gibt es schon seit den frühesten Anfängen der elektronischen Datenverarbeitung Tabellen, die den verschiedenen Bytes Buchstaben und andere Zeichen zuordnen. Die wichtigste dieser Tabellen ist der ,,American Standard for Coded Information Interchange``, die sogenannte ASCII-Tabelle. In dieser Tabelle werden 128 Zeichen verschiedenen Bytes zugeordnet. Das höchste Bit ist bei Computern mit acht Bits pro Byte immer null. Neben dem Alphabet werden in dieser Tabelle eine ganze Reihe von Satz- und Sonderzeichen, sowie Zeichen zur Terminalsteuerung festgelegt.

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:

1.
Der PC-Zeichensatz (ANSI) ist fest im ROM der Grafikkarte gespeichert. Die Buchstaben und Grafikzeichen auf dem Textbildschirm stammen aus diesem Zeichensatz.
2.
Im ISO-Latin-1 Zeichensatz sind herstellerunabhängig die nationalen Sonderzeichen für die Länder Mittel- und Südeuropas enthalten.
Sie finden eine Tabelle mit beiden Zeichensätzten im Anhang.

Dezimalzahl
  Wahrscheinlich wegen der passenden Anzahl Finger rechnen wir normalerweise im Dezimalsystem. Dieses Zahlensystem benutzt alle Ziffern von 0 bis 9.

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.

Oktalzahl
  Genauso, wie es möglich ist, ein Zahlensystem auf den Ziffern 0 und 1 aufzubauen, kann man auch auf anderen Ziffernfolgen Zahlensysteme aufbauen. Die Zahlen aus dem Zahlensystem zur Basis 8 heißen Oktalzahlen. Die Oktalzahlen benutzen nur die Ziffern von 0 bis 7. Genau wie im Dezimalsystem werden beim Zählen die Ziffern der niedrigsten Stelle solange erhöht, bis die höchste Ziffer erreicht ist, in diesem Fall also die 7, und danach wird die nächsthöhere Stelle um eins erhöht und so weiter. Damit ist die Oktalzahl 10 identisch mit der Dezimalzahl 8.

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.


Tabelle Oktal-Binär


Tabelle Byte-Oktal

Hexadezimalzahl
  Es gibt in unserem Kulturkreis nur 10 gebräuchliche Ziffern. Aber es gibt eigentlich keinen Grund, auf Zahlensysteme mit mehr Ziffern zu verzichten. Das im Computerbereich gebräuchliche Hexadezimalsystem benutzt 16 Ziffern. Zusätzlich zu den Ziffern 0 bis 9 werden hier die Buchstaben a bis f als elfte bis sechzehnte Ziffer benutzt. Dieses Zahlensystem erlaubt auch eine relativ einfache Umrechnung von Binärzahlen in Hexadezimalzahlen und umgekehrt. Hierzu werden in der gleichen Weise wie bei den Oktalzahlen die Hexadezimalziffern in vierstellige Binärzahlen und Gruppen zu je vier Binärziffern zu Hexadezimalziffern gewandelt.


Tabelle Byte-Hexa

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.


next up previous contents index
Next: Reise durch's Dateisystem Up: Grundlagen Previous: Die ersten Schritte

Das Linux Anwenderhandbuch
(C) 1997 LunetIX