Um eine Zahlendarstellung von einem Zahlensystem in ein beliebiges anderes umwandeln zu können, bietet
es sich an, zunächst die Zahl in das Dezimalsystem zu konvertieren und es anschließend vom Zehnersystem in
das gewünschte Zahlensystem umzuwandeln.
Dazu ein Beispiel:
Umwandlung der Zahl A3B,39(12) in das 8er-System.
+ 10 * 12 2 = 1440
+ 3 * 12 1 = 36
+ 11 * 12 0 = 11
+ 3 * 12-1 = 0 ,25
+ 9 * 12-2 = 0 ,0625
1487 ,3125(10)
1487 : 8 = 185 R: 7
185 : 8 = 23 R: 1
23 : 8 = 2 R: 7 + 2717
2 : 8 = 0 R: 2
0,3125 * 8 = 2,5 + 0 ,24
0,5 * 8 = 4,0
2717 ,24(8)
|
Anzumerken ist hierbei, dass man zur Ermittlung des Ganzzahlbereiches des Zielsystems den ganzzahligen
Anteil der Dezimalzahl (hier: "1487") solange durch die Basis des Zielsystems (hier: "8") teilt, bis man
als Ergebnis 0 erhält.
Bei der Berechnung der Nachkommastellen hingegen muss man theoretisch den Nachkommabereich solange mit
der Basis des Zielsystems multiplizieren, bis der Nachkommabereich 0 wird. Dabei kann es allerdings
vorkommen, dass man nie eine Null hinter dem Komma erhält. Dann treten zwangsweise Rundungsdifferenzen
auf!
Gebräuchliche Spezialfälle:
Binärsystem: | 1011 | 0111 | 0010 |
Hexadezimalsystem: | B | 7 | 2 |
|
Binärsystem: | 101 | 101 | 110 | 010 |
Oktalsystem: | 5 | 5 | 6 | 2 |
|
Binärsystem: | 1011 | 0111 | 0010 |
Hexadezimalsystem: | B | 7 | 2 |
|
Binärsystem: | 101 | 101 | 110 | 010 |
Oktalsystem: | 5 | 5 | 6 | 2 |
Hier werden jeweils vier Ziffern aus dem Binärsystem zu einer Hexadezimalziffer zusammengefasst bzw. drei
Binärziffern zu einer Oktalziffer. Möchte man nun vom Hexadezimalsystem in das Oktalsystem umrechnen,
bietet es sich an, über das Binärsystem zu rechnen, statt wie im allgemeinen Fall zunächst die Dezimalzahl
zu ermitteln und daraus die Oktalzahl zu berechnen.
Im folgenden Formular kann nun der hier vorgestellte allgemeine Algorithmus zur Umrechnung zwischen
unterschiedlichen Zahlensystemen über das Zehnersystem getestet werden. Es sei allerdings darauf
hingewiesen, dass das dezimale Zwischenergebnis ("1287,3125" im obigen Beispiel) in einer normalen
numerischen JavaScript-Variable gespeichert wird und diese Zahlen nicht in beliebiger Genauigkeit
und Größe aufnehmen kann. Dadurch können also Rundungsfehler auftreten.