Informatik

Zahlendarstellung zur Basis b

Das Jahr hat X = 365 Tage. Diese Zahl X stellen wir im Dezimal­system durch die Ziffernfolge "365" dar.

Es ist dabei zu unter­scheiden zwischen der Zahl als solcher und ihrer Darstellung – es gibt durchaus noch andere Möglich­keiten, die Zahl X darzustellen, etwa als römische Zahl CCCLXV oder als Wort "drei­hundert­fünfund­sechzig" 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 Dar­stellungen heißt Zahlensystem. Das bekannteste Zahlensystem ist das Dezimal­system. Darüber hinaus gibt es aber noch viele andere Zahlen­systeme, die für gewisse Anwendungs­bereiche besser geeignet sind als das Dezimal­system, z.B. das Binärsystem im Computer. Auch für die unter­schiedlichen Zahlentypen wie ganze Zahlen, gebrochene Zahlen, negative Zahlen, komplexe Zahlen sind meist spezielle Dar­stellungen erforderlich.

Dezimalsystem

Die Darstellung "365" im Dezimal­system kommt dadurch zustande, dass sich die Zahl X aus 3 Hunderten, 6 Zehnern und 5 Einern zusammen­zählen lässt, d.h. es gilt

X   =   3 · 102  +  6 · 101  +  5 · 100

Der Wert 10 ist die Basis des Zahlen­systems, 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 unter­scheiden wir bei Ziffern aber gar nicht zwischen Zeichen und zugehöriger Wertigkeit.

 

Basis-b-System

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 Stellen­wert­system 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 Hexa­dezimal­system. Im Hexa­dezimal­system 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 beispiels­weise wird im Hexa­dezimal­system dargestellt als 16D, denn

X   =   1 · 162  +  6 · 161  +  13 · 160   =   256 + 96 + 13   =   365

Berechnung der Darstellung zur Basis b

Um beispiels­weise die Darstellung der Zahl X = 13 im Binärsystem zu berechnen, also zur Basis b = 2, wird wie folgt vorgegangen:

13:2=6Rest1
6:2=3Rest0
3:2=1Rest1
1:2=0Rest1

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 weiter­verfahren; 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 Hexa­dezimal­system 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=22Rest13
22:16=1Rest6
1:16=0Rest1

Berechnung der Zahl aus ihrer Darstellung

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 Berechnungs­vorschrift

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är­darstellung addiert, solange bis alle Stellen abgearbeitet sind. Diese Form der Auswertung wird als Horner-Schema bezeichnet (nach W.G. Hornerzur Person).

 

Das Horner-Schema ist ein Iterations­schema der folgenden Form, hier dargestellt an obigem Beispiel:

i   4  3  2  1  0
d 1101
p 02612
X013613

 

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 Iterations­gleichungen 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:

  1. setze i = n
  2. setze X = 0

    solange i > 0 wiederhole

    1. setze i = i – 1
    2. setze d = wertigkeit(xi)

      setze p = X · b

      setze X = p + d

 

Aufgaben

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 Zahlen­systems 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 Programmier­sprache 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}).

 

static int wertigkeit(String d)
{
    return "0123456789ABCDEF".indexOf(d);
}


static String ziffer(int x)
{
    return "0123456789ABCDEF".substring(x, x+1);
}

 

Literatur

[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.

Buch

[Weitere Informationen]

 

[up]

 


H.W. Lang   mail@hwlang.de   Impressum   Datenschutz
Diese Webseiten sind während meiner Lehrtätigkeit an der Hochschule Flensburg entstanden