... von und nach Dual, Dezimal, Oktal und Hex
Wie schon auf der Seite „Dualzahlen“ erwähnt gibt eine tiefgestellte Zahl die Basis des verwendeten Zahlensystems an. Die tiefgestellte 2 steht für Basis 2 (Dual, Bin), die tiefgestellte 10 steht für Basis 10 (dezimal).
Position | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
Exponent | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Stellenwert10 | +128 | +64 | +32 | +16 | +8 | +4 | +2 | +1 |
Gesamt Wert10 | 255 | 127 | 63 | 31 | 15 | 7 | 3 | 1 |
Die Umrechnung in ein anderes Zahlensystem folgt letztendlich immer dem gleichen Schema. Beginnen wir mit der direkten Umrechnung der Dezimalzahl 5710 in das binäre System (2).
z10 = 57, z2 = ?
57 | : | 2 | = | 28 | Rest 1 | LSB | ||
28 | : | 2 | = | 14 | Rest 0 | |||
14 | : | 2 | = | 7 | Rest 0 | |||
7 | : | 2 | = | 3 | Rest 1 | |||
3 | : | 2 | = | 1 | Rest 1 | MSB |
z2 = 11001
Für die Umwandlung in das Oktalsystem nehmen wir eine höhere Zahl.
z10 = 477, z8 = ?
477 | : | 8 | = | 59 | Rest 5 | LSB | ||
59 | : | 8 | = | 7 | Rest 3 | |||
7 | : | 8 | = | 0 | Rest 7 | MSB |
z8 = 735
Für die Umwandlung in das Hexadezimalsystem nehmen wir eine noch höhere Zahl.
z10 = 702, z16 = ?
702 | : | 16 | = | 43 | Rest 14 -> E | LSB | ||
43 | : | 16 | = | 2 | Rest 11 -> B | |||
2 | : | 16 | = | 0 | Rest 2 | MSB |
z16 = 2BE oder 0x2BE
Wie bei jedem anderen Zahlensystem ist die kleinste Zahl der Wert von (Basis)0, hier also 20. Mit Ausnahme von der Zahl 0 (00=0) ergibt jede andere Zahl potenziert mit 0 immer 1, womit die Darstellung beispielsweise des Zustands „EIN“ schon geregelt wäre.
Die Umrechnung von Dualzahlen in das Oktal- oder Hexadezimalsystem ist am einfachsten. Warum?
Für Oct oder Hex die Binärzahl von rechts in Dreier- bzw. Vierer-Gruppen aufteilen, Gruppenwert bestimmen, fertig. Nicht vergessen darf man jedoch, dass die Hex-Darstellung von Werten im Bereich von 1010 bist 1510 mit A bis F erfolgt.
Daraus ergibt sich, dass die binäre Ziffernfolge 102 (der tiefgestellte Wert gibt die Basis an) der Summe von 1*21 + 0*20 = 2 + 0 und somit dem Dezimalwert 210, dem Oktalwert 28 und dem Hex-Wert 216 entspricht.
Setzt man dies fort, dann kann man beliebige Zahlen darstellen und umwandeln:
100000000002 = | 1*210+0*29+0*28+0*27+0*26+0*25+0*24+0*23+0*22+0*21+0*20 |
= | 1*1024+0+0+0+0+0+0+0+0+0+0 |
= | 102410 |
100000000002 = | 1*21+0*20 | 0*22+0*21+0*20 | 0*22+0*21+0*20 | 0*22+0*21+0*20 |
= | 1*2 | 1*0 | 1*0 | 1*0 |
= | 20008 |
100000000002 = | 1*22+0*21+0*20 | 0*23+0*22+0*21+0*20 | 0*23+0*22+0*21+0*20 |
= | 1*4 | 1*0 | 1*0 |
= | 40016 |