Das Jahr hat X = 365 Tage. Diese Zahl X stellen wir im Dezimalsystem durch die Ziffernfolge "365" dar.
Es ist dabei zu unterscheiden zwischen der Zahl als solcher und ihrer Darstellung – es gibt durchaus noch andere Möglichkeiten, die Zahl X darzustellen, etwa als römische Zahl CCCLXV oder als Wort "dreihundertfünfundsechzig" oder als Strichliste oder noch irgendwie anders.
Die Darstellung einer Zahl ist nichts anderes als eine Codierung der Zahl durch eine Zeichenfolge. Ein System zur Zuordnung zwischen Zahlen und zugehörigen Darstellungen heißt Zahlensystem. Das bekannteste Zahlensystem ist das Dezimalsystem. Darüber hinaus gibt es aber noch viele andere Zahlensysteme, die für gewisse Anwendungsbereiche besser geeignet sind als das Dezimalsystem, z.B. das Binärsystem im Computer. Auch für die unterschiedlichen Zahlentypen wie ganze Zahlen, gebrochene Zahlen, negative Zahlen, komplexe Zahlen sind meist spezielle Darstellungen erforderlich.
Die Darstellung "365" im Dezimalsystem kommt dadurch zustande, dass sich die Zahl X aus 3 Hunderten, 6 Zehnern und 5 Einern zusammenzählen lässt, d.h. es gilt
X = 3 · 102 + 6 · 101 + 5 · 100
Der Wert 10 ist die Basis des Zahlensystems, und es stehen die 10 Ziffern 0, 1, 2, 3, ..., 9 für die Darstellung zur Verfügung. Die Ziffern sind Zeichen, denen bestimmte Wertigkeiten zugeordnet sind; so ist z.B. dem Zeichen "3" als Wertigkeit die Zahl 3 zugeordnet. Meist unterscheiden wir bei Ziffern aber gar nicht zwischen Zeichen und zugehöriger Wertigkeit.
Statt mit der Basis 10 funktioniert dies auch mit anderen Basen b ∈ ℕ, b > 1. Allgemein wird eine positive ganze Zahl X im Zahlensystem zur Basis b dargestellt durch eine endliche Folge x mit
x = xn-1 ... x0
wobei die xi Ziffern sind. Als Ziffern stehen Zeichen mit den Wertigkeiten 0, ..., b-1 zur Verfügung. Die Darstellung ist sogar eindeutig.
Aus der Darstellung zur Basis b errechnet sich die Zahl X in folgender Weise:
X = xn-1 · bn-1 + ... + x0 · b0
Hierbei werden die Wertigkeiten der Ziffern xi für die Berechnung herangezogen.
Allgemein wird ein solches Zahlensystem zur Basis b auch als Stellenwertsystem bezeichnet.
Das Zahlensystem mit der Basis b = 2 ist das Binärsystem (oder Dualsystem oder Zweiersystem). So lässt sich etwa die Zahl X = 13 im Binärsystem darstellen als
X = 1 · 23 + 1 · 22 + 0 · 21 + 1 · 20 = 8 + 4 + 0 + 1
Im Binärsystem stehen nur die Ziffern 0, 1 zur Verfügung.
Das Zahlensystem mit der Basis b = 16 heißt Hexadezimalsystem. Im Hexadezimalsystem werden Ziffern mit den Wertigkeiten 0, ..., 15 benötigt; man verwendet hierzu die Ziffern 0, ..., 9, A, B, C, D, E, F. Die Wertigkeit ist den Buchstabenziffern leider nicht ohne Weiteres anzusehen – zum Teil helfen Eselsbrücken wie Cwölf, Dreizehn, Fünfzehn.
Die Zahl X = 365 beispielsweise wird im Hexadezimalsystem dargestellt als 16D, denn
X = 1 · 162 + 6 · 161 + 13 · 160 = 256 + 96 + 13 = 365
Um beispielsweise die Darstellung der Zahl X = 13 im Binärsystem zu berechnen, also zur Basis b = 2, wird wie folgt vorgegangen:
13 | : | 2 | = | 6 | Rest | 1 |
6 | : | 2 | = | 3 | Rest | 0 |
3 | : | 2 | = | 1 | Rest | 1 |
1 | : | 2 | = | 0 | Rest | 1 |
Die Zahl X (hier: 13) wird ganzzahlig durch die Basis b (hier: 2) geteilt und es werden der Quotient (hier: 6) und der Rest (hier 1) ermittelt.
Mit dem Quotienten (hier: 6) wird in gleicher Weise weiterverfahren; er wird ganzzahlig durch die Basis b (hier: 2) geteilt und es werden ein neuer Quotient (hier: 3) und ein neuer Rest (hier 0) ermittelt, usw.
Das Verfahren endet, sobald sich als Quotient 0 ergibt. Das Ergebnis, die gesuchte Darstellung von X, ist dann die Folge der Reste, von unten nach oben gelesen, hier also 1101. Streng genommen stehen hier die Wertigkeiten der Ziffern, diese sind aber im Zweiersystem identisch mit den Ziffern.
Bei Umrechnung der Zahl X = 365 ins Hexadezimalsystem wird deutlich, dass zunächst die Wertigkeiten der Ziffern als Ergebnisse herauskommen; die Wertigkeit 13 muss noch in die Ziffer D umgewandelt werden, um die Darstellung 16D der Zahl 365 zu erhalten.
365 | : | 16 | = | 22 | Rest | 13 |
22 | : | 16 | = | 1 | Rest | 6 |
1 | : | 16 | = | 0 | Rest | 1 |
Um umgekehrt aus der Darstellung 1101 die Zahl 13 zu berechnen, stellen wir das obige Schema zunächst etwas anders dar:
13 | = | 2 | · | 6 | + | 1 |
6 | = | 2 | · | 3 | + | 0 |
3 | = | 2 | · | 1 | + | 1 |
1 | = | 2 | · | 0 | + | 1 |
Indem wir nun für die 6 den Ausdruck 2 · 3 + 0 einsetzen, dann darin für 3 den Ausdruck 2 · 1 + 1 und darin für 1 den Ausdruck 2 · 0 + 1, erhalten wir die Berechnungsvorschrift
13 = 2 · (2 · (2 · (2 · 0 + 1) + 1) + 0) + 1
Es wird also mit der schwarzen 0 begonnen und dann immer mit 2 multipliziert und die jeweils nächste Stelle xi der Binärdarstellung addiert, solange bis alle Stellen abgearbeitet sind. Diese Form der Auswertung wird als Horner-Schema bezeichnet (nach W.G. Horner).
Das Horner-Schema ist ein Iterationsschema der folgenden Form, hier dargestellt an obigem Beispiel:
i | 4 | 3 | 2 | 1 | 0 |
d | 1 | 1 | 0 | 1 | |
p | 0 | 2 | 6 | 12 | |
X | 0 | 1 | 3 | 6 | 13 |
Gegeben ist die Darstellung x = xn-1 ... x0 einer Zahl im Binärsystem, hier x = 1101. Die Länge der Darstellung ist hier n = 4. In der ersten Spalte des Schemas werden die Variablen i mit n = 4 und X mit 0 initialisiert. In jeder weiteren Spalte werden die Variablen wie folgt mit Werten belegt:
Die entsprechenden Iterationsgleichungen lauten also
i = i' – 1
d = wertigkeit(xi)
p = X' · b
X = p + d
Hierbei sind i' und X' die Werte von i bzw. von X aus der vorherigen Spalte.
Als Algorithmus formuliert ergibt sich daraus
Auswertung einer Zahlendarstellung
Eingabe:
Darstellung x = xn-1 ... x0 der Länge n, Basis b
Ausgabe:
Zahl X, die durch x dargestellt wird
Methode:
setze X = 0
solange i > 0 wiederhole
setze d = wertigkeit(xi)
setze p = X · b
setze X = p + d
Aufgabe 1: Stellen Sie die Zahl 466 zur Basis 7 dar.
Aufgabe 2: Setzen Sie das Umrechnungsschema zur Basis-b-Darstellung einer Zahl X in eine Excel-Tabelle um. Verwenden Sie die Excel-Funktionen GANZZAHL(a/b) und REST(a;b), um das Ergebnis der ganzzahigen Division von a durch b und den entsprechenden Rest zu berechnen.
Aufgabe 3: Sie wollen Ihren nächsten Geburtstag groß feiern, weil Sie ein Alter erreicht haben, das eine "Schnapszahl" ist (lauter gleiche Ziffern). Geht das, wenn Sie die Basis b des Zahlensystems geeignet wählen (b ∈ {2, ..., 10})?
Aufgabe 4: Formulieren Sie die Berechnung der Basis-b-Darstellung einer Zahl X als Algorithmus.
Aufgabe 5: Programmieren Sie die Berechnung der Basis-b-Darstellung einer Zahl X in der Programmiersprache Java. Die Umrechnung zwischen einer Ziffer, die als String vorliegt, und ihrer Wertigkeit und umgekehrt lässt sich elegant mit folgenden Funktionen umsetzen (b ∈ {2, ..., 16}).
[Lan 21] H.W. Lang: Vorkurs Informatik für Dummies. Wiley (2021)
Die Zahlendarstellung zur Basis b und die Umrechnung zwischen Zahlendarstellungen finden Sie auch in meinem Buch Vorkurs Informatik für Dummies.