Zahlen basieren auf Potenzen

Erinnern wir uns: Binäre, dezimale und hexadezimale Zahlen bestehen aus unterschiedlich vielen Ziffern. Ihre Stellenwertigkeiten basieren auf Potenzen von 2, 10 und 16.

Während das dezimale Zahlensystem die Ziffern 0 bis 9 kennt, gibt es im binären Zahlensystem nur die Ziffern 0 und 1. Das hexadezimale Zahlensystem benötigt mehr als 10 Ziffern. Daher werden die übrigen 6 Zeichen dem Alphabet entliehen (A = 10, B = 11, C = 12, D = 13, E = 14, F = 15). Die erste Stelle vor dem Komma ist in allen Zahlensystemen der »Einer« und hat den niedrigsten Wert (Potenz = 0). Bild 1 zeigt die Wertigkeit der ersten 5 Stellen vor dem Komma des binären, dezimalen und hexadezimalen Zahlensystems in einer Tabelle.

System 5. Stelle 4. Stelle 3. Stelle 2. Stelle 1. Stelle
binär 024 = 00016 023 = 0008 022 = 004 021 = 02 020 = 1
dezimal 104 = 10000 103 = 1000 102 = 100 101 = 10 100 = 1
hexadezimal 164 = 65536 163 = 4096 162 = 256 161 = 16 160 = 1

Anhand dieser Tabelle läßt sich eine beliebige Zahl für die drei verschiedenen Zahlensysteme berechnen. Beginnen wir zur Übung mit der – in den meisten Köpfen unbewußten – Berechnung der Zahl 8094 im dezimalen Zahlensystem. Das Prinzip ist bei allen drei Systemen das gleiche: Jede einzelne Ziffer wird ihrer Stelle entsprechend mit der zum Zahlensystem passenden Wertigkeit multipliziert. Danach werden die Ergebnisse der Multiplikationen addiert. Versuchen Sie, die folgende Rechnung nachzuvollziehen. Sie demonstriert die Entstehung des Wertes, der sich hinter der Zahl 8094 verbirgt:

8 x 103 (1000) = 8000
+ 0 x 102 (100) = 0
+ 9 x 101 (10) = 90
+ 4 x 100 (1) = 4
────
8094
====

Berechnen wir nun den dezimalen Wert der hexadezimalen Zahl AFFE. Die zu potenzierende Basis ist diesmal nicht 10, sondern 16. Die dezimalen Zahlen, die sich hinter den Buchstaben A, F, und E verbergen, sind in den Klammern hinter den unterstrichenen hexadezimalen Ziffern angeben:

A (10) x 163 (4096) = 40960
+ F (15) x 162 (256) = 3840
+ F (15) x 161 (16) = 240
+ E (14) x 160 (1) = 14
───────
45054
=======

Ermitteln wir aus der binären Zahl 10101011 die gleichwertige dezimale Zahl. Weil dem binären Zahlensystem die Basis 2 zugrunde liegt, potenzieren wir entsprechend. Da binäre Zahlen in der Regel etwas länger sind, müssen Sie hier schon etwas zählen, um auf Anhieb die richtige Potenz zu errechnen. 10101011 besteht aus 8 Ziffern, also potenzieren wir die 8. Stelle vor dem (nicht vorhandenen) Komma mit 7. Schauen Sie nochmal in die Tabelle und führen Sie sie in Gedanken fort. Die 8. Stelle würde bedeuten, eine beliebige Basis mit 7 zu potenzieren, weil die erste Stelle vor dem Komma der Potenz 0 (!) entspricht.

1 x 27 (128) = 128
+ 0 x 26 (64) = 0
+ 1 x 25 (32) = 32
+ 0 x 24 (16) = 0
+ 1 x 23 (8) = 8
+ 0 x 22 (4) = 0
+ 1 x 21 (2) = 2
+ 1 x 20 (1) = 1
──────
171
======

Üben wir das Ganze umgekehrt. Um aus der dezimalen Zahl 8094 eine hexadezimale zu machen, dividieren Sie 8094 durch den höchstmöglichen Stellenwert, der vollständig in 8094 paßt. Der Rest muß demzufolge immer kleiner als der Stellenwert sein, sonst wäre er 0. Mit Brüchen wird also nicht gearbeitet! Danach dividieren Sie den Rest durch die nächst kleinere Wertigkeit und ermitteln einen neuen Rest. Das wiederholen Sie solange, bis Sie bei der letzten Stelle angekommen sind, auch, wenn irgendwann kein Rest mehr entstehen sollte. Sollte das Ergebnis irgendeiner Division größer oder gleich der verwendeten Basis (also >=16) sein, haben Sie einen Fehler gemacht!

8094 / 163 (4096) = 1 (1) Rest 3998
3998 / 162 (256) = 15 (F) Rest 158
158 / 161 (16) = 9 (9) Rest 14
14 / 160 (1) = 14 (E) Rest 0

Ermitteln wir aus 8094 das binäre Äquivalent. Achten Sie auf die Potenzen und den Rest, den es bereits eine Stelle vor der letzten Division nicht mehr gibt. Die Berechnung muß dennoch bis zur letzten Stelle durchgeführt werden:

8094 / 212 (4096) = 1 Rest 3998
3998 / 211 (2048) = 1 Rest 1950
1950 / 210 (1024) = 1 Rest 926
926 / 29 (512) = 1 Rest 414
414 / 28 (256) = 1 Rest 158
158 / 27 (128) = 1 Rest 30
30 / 26 (64) = 0 Rest 30
30 / 25 (32) = 0 Rest 30
30 / 24 (16) = 1 Rest 14
14 / 23 (8) = 1 Rest 6
6 / 22 (4) = 1 Rest 2
2 / 21 (2) = 1 Rest 0
0 / 20 (1) = 0 Rest 0

Üben wir zum Schluß mit einer ungeraden und kleineren Zahl:

171 / 27 (128) = 1 Rest 43
43 / 26 (64) = 0 Rest 43
43 / 25 (32) = 1 Rest 11
11 / 24 (16) = 0 Rest 11
11 / 23 (8) = 1 Rest 3
3 / 22 (4) = 0 Rest 3
3 / 21 (2) = 1 Rest 1
1 / 20 (1) = 1 Rest 0

Wie Sie anhand der unterstrichenen Ziffern erkennen können, entspricht 170 dezimal 10101011 binär.

Um das richtige Gefühl für die Wertigkeit einer Zahl in den unterschiedlichsten Systemen zu erhalten, bleibt Ihnen nichts weiter übrig, als die Umrechnung immer wieder zu üben. Falls Sie des Trainings überdrüssig werden oder mit Mathematik einfach nichts zu tun haben wollen: Im Kapitel »Andere Befehle« gibt es einige Programme, die Ihnen die Umrechnung vollständig abnehmen.

Quelle: 200 Utilities für PC-/MS-DOS von Gerhard Schild und Thomas Jannot