Umrechnung von Zahlensystemen

452

Beim Durchlesen meiner älteren Grundlagenartikel ist mir aufgefallen, dass ich zwar erläutere, wieviele Zustände man mit einer bestimmten Anzahl Bits darstellen kann, und worum es sich bei Zahlensystemen handelt, jedoch gehe ich nicht näher darauf ein, wie man zwischen verschiedenen Zahlensystemen umrechnen kann. Da ich zudem aus den Suchbegriffen, mit denen Besucher auf meine Webseite finden, ablesen kann, dass genau nach solchen Umrechnungen gesucht wird, möchte ich mit diesem Artikel die Lücke auffüllen.

Wiederholung

Aus „Grundlagen Teil 1: Bits und Bitfolgen“ ist bereits bekannt, wieviele Zustände man mit einer n-stelligen Dualzahl darstellen kann, und wie man ermitteln kann, wieviele Stellen eine Dualzahl haben muss, um eine bestimmte Anzahl Zustände darzustellen. Dabei gilt:

(Anzahl darstellbarer Zustände) = (Größte darstellbare Zahl) + 1

So lassen sich beispielsweise mit 16 Zuständen alle Zahlen von 0 bis 15 darstellen. An dieser Stelle sei angemerkt, dass wir nur von natürlichen Zahlen inkl. 0 sprechen. Die Darstellung ganzer Zahlen (also auch der negativen Zahlen) und die Darstellung als Gleitkommazahlen wird in „Grundlagen Teil 2: Informations und Zahlendarstellung“ näher erläutert.

Nun sei daran erinnert, wieviele Zustände mit einer n-stelligen Dualzahl dargestellt werden können: 2n. Somit lassen sich mit einer n-stelligen Dualzahl die Zahlen von 0 bis 2n-1 darstellen. Allgemein bedeutet dies:

(Anzahl darstellbarer Zustände mit einer n-stelligen Zahl im Zahlensystem z) = zn

Somit gilt für eine n-stellige Zahl im Dualsystem (wie bereits bekannt) 2n, im Dezimalsystem 10n und im Hexadezimalsystem 16n Zustände. Die Bezeichnung des Zahlensystems ergibt sich aus der verfügbaren Anzahl Ziffern, also z.B. das Dualsystem (2) mit den Ziffern 0 und 1, das Dezimalsystem (10) mit 0, 1, 2, 3, 4, 5, 6, 7, 8 und 9 oder das Hexadezimalsystem (16) mit 0, 1, …, 9, A, B, C, D, E und F.

Umrechnung in das Dezimalsystem

Betrachten wir nun eine Zahl z mit n Stellen im Zahlensystem b (auch numerische Basis b genannt):

z = (zn-1zn-2 … z0)b

Diese Zahl z lässt sich folgendermaßen in eine Dezimalzahl umrechnen:

(zn-1 * bn-1 + zn-2 * bn-2 + … + z0 * b0)10

An ein paar Beispielen wird dieses Verfahren schnell ersichtlich.

Dualzahl 110101:

( 1 1 0 1 0 1 )2 =
( 1*25+ 1*24+ 0*23+ 1*22+ 0*21+ 1*20 )10 =
( 32+ 16+ 0+ 4+ 0+ 1 )10 = (53)10

Hexadezimalzahl F0A4:

( F 0 A 4 )16 =
( 15*163+ 0*162+ 10*161+ 4*160 )10 =
( 61440+ 0+ 160+ 4 )10 = (61604)10

Um diese Zerlegungen zu verstehen, empfiehlt sich auch ein Blick auf eine Dezimalzahl.

Dezimalzahl 167:

( 1 6 7 )10 =
( 1*102+ 6*101+ 7*100 )10 =
( 100+ 60+ 7 )10 = (167)10

Umrechnung vom Dezimalsystem in ein beliebiges Zahlensystem

Wenn man eine Dezimalzahl in ein beliebiges Zahlensystem umrechnen möchte, muss man nur eine ganzzahlige schriftliche Division durchführen und den Rest betrachten. So dividiert man einfach die Dezimalzahl durch die numerische Basis des gewünschten Zahlensystems (also 2 für das Dualsystem, 16 für das Hexadezimalsystem, usw.) und notiert den Rest als letzte Stelle der umgerechneten Zahl. Nun dividiert man den Ganzzahlquotienten der vorhergehenden Division wieder durch die numerische Basis und notiert den Rest als vorletzte Stelle. Dies wird solange wiederholt, bis der Ganzzahlquotient gleich 0 ist.

Auch hier läßt sich das Verfahren am Besten durch Beispiele verdeutlichen.

Dezimalzahl 53 in Dualzahl umwandeln:

                               Ganzzahlquotient           Rest           Umrechnungsergebnis
53 : 2 = 26 * 2 + 1 26 1 1
26 : 2 = 13 * 2 + 0 13 0 01
13 : 2 = 6 * 2 + 1 6 1 101
6 : 2 = 3 * 2 + 0 3 0 0101
3 : 2 = 1 * 2 + 1 1 1 10101
1 : 2 = 0 * 2 + 1 0 1 (110101)2 = (53)10

Dezimalzahl 61604 in Hexadezimalzahl umwandeln:

                               Ganzzahlquotient           Rest           Umrechnungsergebnis
61604 : 16 = 3850 * 16 + 4 3850 4 4
3850 : 16 = 240 * 16 + 10 240 10 (A) A4
240 : 16 = 15 * 16 + 0 15 0 0A4
15 : 16 = 0 * 16 + 15 0 15 (F) (F0A4)16 = (61604)10

Auch hier macht ein Blick auf eine Dezimalzahl das Prinzip klarer.

Dezimalzahl 167 in Dezimalzahl „umwandeln“:

                               Ganzzahlquotient           Rest           Umrechnungsergebnis
167 : 10 = 16 * 10 + 7 16 7 7
16 : 10 = 1 * 10 + 6 1 6 67
1 : 10 = 0 * 10 + 1 0 1 (167)10 = (167)10

Umrechnung zwischen beliebigen Systemen

Mit den oben gegebenen Informationen kann man Zahlen aus beliebigen Zahlensysteme in das Dezimalsystem umrechnen, um die so ermittelte Dezimalzahl in ein weiteres beliebiges Zahlensystem umzurechnen. Jedoch gibt es einen besonderen Kniff, wenn sich das Zielsystem als Potenz des Ausgangssystems darstellen läßt oder umgekehrt, also wenn gilt:

b1 = b2n
b1 und b2 sind numerische Basen zweier Zahlensysteme mit b2<=b1
n ist eine natürliche Zahl > 0

Beispiele:
Hexadezimal- und Dualsystem: 16 = 24, also n=4
Oktal- und Dualsystem: 8 = 23, also n=3
Dreier- und Neunersystem: 9 = 32, also n=2

Um nun vom Zahlensystem mit der kleinern numerischen Basis in das andere Zahlensystem umzurechnen, muss die Zahl von rechts nach links in Blöcke aus n Ziffern unterteilt werden. Nun genügt es, diese Blöcke als einzelne Zahlen zu betrachten und nur diese Umzurechnen. Schreibt man die einzelnen Ergebnisse nebeneinander, erhält man die Zahl im gewünschten System.

Möchte man jedoch vom Zahlensystem mit der größeren numerischen Basis in das andere Zahlensystem umrechnen, betrachtet man jede einzelne Ziffer der Zahl und wandelt diese in eine n-stellige Zahl des Zielsystems um (wenn nötig mit vorangestellten Nullen). Auch diese schreibt man nur noch nebeneinander und erhält die Zahl im gewünschten System.

Auch hier können Beispiele sicher mehr Klarheit schaffen.

Dualzahl 101010110110101 in Hexadezimalzahl umwandeln:

Da 16 = 24 muss die Dualzahl von rechts nach links in Viererblöcke unterteilt werden.

Schritt 1: Blöcke bilden 101 |0101 |1011 |0101
Schritt 2: Blöcke in Hex umrechnen     5 |5 |B |5
Ergebnis: (101010110110101)2 = (55B5)16

Oktalzahl 473 in Dualzahl umwandeln:

Da 8 = 23 müssen die Ziffern als dreistellige Dualzahlen dargestellt werden.

Schritt 1: Ziffern betrachten 4 |7 |3
Schritt 2: Ziffern in Dual umrechnen     100 |111 |011
Ergebnis: (473)8 = (100111011)2

(1210)3 in das Neunersystem umrechnen:

Da 9 = 32 muss die Zahl im Dreiersystem von rechts nach links in Zweierblöcke unterteilt werden.

Schritt 1: Blöcke bilden 12 |10
Schritt 2: Blöcke in 9er-System umrechnen     5 |3
Ergebnis: (1210)3 = (53)9

Und nun viel Spaß beim Umrechnen!