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