Zahlensysteme

Das Dezimalsystem, das Zahlensystem für den Menschen

Es gibt eine unübersehbare Menge verschiedener Sprachen auf der Welt. Aber bei den Zahlensystemen hat sich das Dezimalsystem nahezu überall durchgesetzt (man verwechsele das nicht mit dem metrischen System, auch in den Ländern, in denen mit Meile und Fuß gemessen wird, wird dezimal gerechnet).

Ganz sicher sind es die zehn Finger des Menschen, mit denen jeder seine ersten Rechenübungen absolviert, die dem Dezimalsystem zu seiner großen Karriere verholfen haben, denn unter den vielen anderen möglichen Zahlensystemen hätte das mit der Basis 10 arbeitende System durchaus Konkurrenten, die gute Argumente haben. Die 12 böte sich z. B. als Basis an, weil man sie mit ganzzahliegem Ergebnis durch 2, 3, 4 und 6 teilen kann (die 10 ist nur durch 2 und 5 teilbar). Früher gebräuchliche Zählmaße wie Dutzend (12 Stück), Schock (60), Gros (144 = 122) und Maß (1728 = 123) erinnern daran, dass man sich des Vorteils der Basis 12 durchaus bewusst war.

Aber das Dezimalsystem hat sich durchgesetzt. Es arbeitet mit den zehn Ziffern

0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9

und ist ein "Stellenwertsystem": Die Position einer Ziffer innerhalb einer aus mehreren Ziffern zusammengesetzten Zahl bestimmt die Größe ihres Beitrags zum Wert der Zahl. Im Dezimalsystem hat jede Ziffer den zehnfachen Wert gegenüber der rechts von ihr stehenden Ziffer, z. B. steht in der Zahl 438 die 8 auf der "Einer-Position", die 3 auf der "Zehner-Position" und die 4 auf der "Hunderter-Position". Es gilt also: 438 = 4·100 + 3·10 + 8 = 4·102 + 3·10 + 8.

Damit wird der Charakter eines beliebigen Stellenwertsystems deutlich: Es gibt eine Basis B (im Dezimalsystem: B = 10) und eine entsprechende Anzahl von Ziffern 0, 1, 2, ... , B-1. Wenn man bei ganzen Zahlen die Position der äußersten rechten Ziffer mit p = 0 bezeichnet und dann nach links die Positionen mit p = 1, 2, 3, ... zählt, dann gilt für den Wert w einer Ziffer z auf der Position p: w = z·Bp. Und nach dem gleichen Prinzip entstehen die gebrochenen Zahlen, wenn man rechts vom Komma die Positionen mit negativen Vorzeichen versieht: p = -1, -2, -3, ...

Goofy03Mickey Mouse hätte das Oktalsystem erfunden

Mickey Mouse und viele andere Comic-Figuren (siehe nebenstehendes Bild mit Goofy) werden stets mit nur vier Fingern an jeder Hand dargestellt. Wenn also Mickey Mouse ein Zahlensystem für die Comic-Welt erfunden hätte, wäre es wahrscheinlich das Oktalsystem mit der Basis 8 und den acht Ziffern

0 , 1 , 2 , 3 , 4 , 5 , 6 , 7

geworden. Im Oktalsystem wird die dezimale 8 also als 10 dargestellt: 10 (oktal) = 1·81 + 0·80 (dezimal). Und eine gebrochene Oktalzahl wie z. B. 456,2 könnte man folgendermaßen ins Dezimalsystem umrechnen:

456,2 (oktal) = 4·82 + 5·81 + 6·80 + 2·8-1 (dezimal) = 302,25 (dezimal).

Diese (nicht sehr schöne) Schreibweise mit der Oktalzahl auf der linken Seite und den Dezimalzahlen auf der rechten Seite ist ein Tribut an unsere Rechenfertigkeit, die wir normalerweise nur für das Dezimalsystem haben. Deshalb bevorzugt man auch für die Umrechnung in die andere Richtung den folgenden Algorithmus, der auch das Rechnen mit Dezimalzahlen gestattet: Man dividiert eine Dezimalzahl sukzessive durch 8, und die jeweils verbleibenden Divisionsreste bilden (von rechts nach links) die Oktalzahl.

Beispiel   →   Umrechnung der Dezimalzahl 2007 in das Oktalsystem:

2007 : 8 = 250, Rest 7   →   250 : 8 = 31, Rest 2   →   31 : 8 = 3, Rest 7   →   3 : 8 = 0, Rest 3   →     Oktalzahl: 3727 .

Der Computer hat nur "zwei Finger", deshalb rechnet er im Dualsystem

Die Darstellung von Informationen im Computer durch zwei Zustände einer Speicherzelle hat dazu geführt, dass das Dualsystem eine ganz besondere Bedeutung erlangt hat. Es ist ein Stellenwertsystem mit der Basis 2 und kennt demzufolge nur die beiden Ziffern 0 und 1, was zwangsläufig dazu führt, dass die Zahlen in der Regel sehr viele Stellen haben. Die Dezimalzahl 89 sieht z. B. als Dualzahl so aus: 1011001. Dies kann mit dem oben für das Oktalsystem am Beispiel gezeigten Algorithmus, der entsprechend modifiziert werden muss (Division jeweils durch 2), leicht bestätigt werden.

Hier soll noch am Beispiel gezeigt werden, wie man Dezimalbrüche in Dualbrüche umrechnet (man beachte, dass die Dualzahl 0,1 nach der oben gegebenen Definition für Stellenwertsysteme der Dezimalzahl 0,5 entspricht). Bei der Umrechnung eines echten Dezimalbruchs (beginnt mit 0,..) in einen Dualbruch multipliziert man nacheinander jeweils mit 2, wobei immer der vor dem Komma erscheinende Anteil (1 oder 0) als neue Dualziffer genommen und nur mit dem gebrochenen Anteil weitergerechnet wird.

Beispiel   →   Der Dezimalbruch 0,83 soll in einen Dualbruch umgerechnet werden:

    0,83 · 2 = 1 + 0,66    →   0,66 · 2 = 1 + 0,32    →   0,32 · 2 = 0 + 0,64    →   0,64 · 2 = 1 + 0,28    →  
    0,28 · 2 = 0 + 0,56    →   0,56 · 2 = 1 + 0,12    →   ...      Dualbruch: 0,110101 ...

An diesem Beispiel wird ein typisches Problem deutlich: Der Dualbruch kann sehr viele Stellen haben. Hier wurde (willkürlich) nach der sechsten Dualziffer nach dem Komma abgebrochen. Es ist übrigens wie bei der Umrechnung von gemeinen Brüchen auf Dezimalbrüche im Dezimalsystem: Die Rechnung geht irgendwann auf, oder es entsteht ein periodischer Bruch (häufigster Fall). Man kann sich das an dem Beispiel sehr schön klar machen: Es können nur endlich viele verschiedene "Überhänge" entstehen. Beim Überhang 0,00 stoppt die Rechnung (es ist ein endlicher Dualbruch entstanden), wenn sich ein Überhang wiederholt, beginnt eine Periode eines unendlichen Dualbruchs.

In der Regel führt also die Eingabe eines endlichen Dezimalbruchs auf einen gerundeten Dualbruch im Computer, und man darf sich nicht wundern, wenn ohne weitere Aktion die sofortige Ausgabe (und damit die Rückrechnung des gerundeten Wertes auf das Dezimalsystem) schon einen (wenn auch ganz kleinen) Fehler erzeugt (0,83 wird eventuell zu 0,82999999999999).

Mit dem Hexadezimalsystem kommuniziert der Programmierer mit dem Computer

Weil Dualzahlen vom Menschen kaum vernünftig erfasst werden können, bei der (aufwändigen) Umrechnung in das Dezimalsystem (und zurück) Rundungsfehler unvermeidlich sind, hat sich das Hexadezimalsystem für die Kommunikation zwischen Programmierer und Computer etabliert. Das Hexadezimalsystem hat die Basis B = 16 und arbeitet dementsprechend mit den 16 Ziffern

0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , A , B , C, D , E , F .

Es mussten die sechs neuen Ziffern A, B, C, D, E und F definiert werden, die für die dezimalen Werte 10, 11, 12, 13, 14, 15 stehen. Das Hexadezimalsystem ist also ein "Stellenwert-System", bei dem jede Ziffer den sechzehnfachen Wert gegenüber der rechts von ihr stehenden Ziffer repräsentiert, z. B. steht in der Hexadezimalzahl 7D7 die rechte 7 auf der "Einer-Position", die Ziffer D (die dezimale 13) auf der "Sechzehner-Position" und die linke 7 auf der "256er-Position". Es gilt also (Umrechnung in das Dezimalsystem):

7D7 = 7·256 + 13·16 + 7 = 7·162 + 13·16 + 7 .

Bei der Umrechnung in das Dezimalsystem treten die gleichen Probleme wie beim Oktal- oder Dualsystem auf. Aber:

Die Umrechnung vom Hexadezimalsystem in das Dualsystem (und zurück)
ist besonders einfach, und es entstehen keine Rundungsfehler.

Aus diesem Grund werden nicht nur Dualzahlen, sondern alle im Computer binär gespeicherten Informationen gern in Hexadezimalform ausgegeben (und gegebenenfalls in einem so genannten "Hex-Editor" modifiziert).

Es ist leicht einzusehen, dass jede Hexadezimalziffer genau durch 4 Dualziffern repräsentiert wird. So wird z. B. die 7D7 zur Dualzahl 111 1101 0111. Bei Umwandlung in umgekehrter Richtung muss man ganzzahlige Dualzahlen von rechts beginnend in Vierergruppen unterteilen, um danach jede Vierergruppe durch die entsprechende Hexadezimalziffer zu ersetzen, z. B.:

1010 1111 1111 1110 (Dualzahl)   →   AFFE (Hexadezimalzahl) .

www.D@nkert.de

D

nkert.de