LU01f - Zahlensysteme umrechnen
Grundlagen
Im Alltag sind wir uns gewohnt, Zahlen im Dezimalsystem (Basis 10) darzustellen. Die Informatik basiert aber auf dem Binärsystem (Basis 2). Deshalb werden auch Dateien und Programmvariablen binär gespeichert. Um diese Informationen zu verstehen, müssen Sie die Zahlen zwischen den verschiedenen Zahlensystemen umrechnen.
Um Missverständnisse zu vermeiden, geben wir bei den Zahlen jeweils das Zahlensystem an. Dazu notieren wir die Basis tiefgestellt neben die Zahl:
- Dezimalsystem: 15310
- Binärsystem: 1010 11002
- Oktalsystem: 2438
- Hexadezimalsystem: 1A16
Ebenfalls gebräuchlich ist der Buchstabe b
für das Binärsystem bzw. x
für das Hexadezimalsystem:
- '1010 1100'b
- '1A'x
Dezimalzahlen umrechnen
Allgemein
Um eine Dezimalzahl in ein anderes Zahlensystem umzurechnen, führen wir eine Reihe von Divisionen durch.
Dezimalzahl ----------- = Ergebnis und Rest Basis
- Notieren Sie den Rest als Resultat (von rechts nach links).
- Anschliessend wiederholen Sie die Division mit dem Ergebnis, bis das Ergebnis 0 ist.
Beispiel
Rechnen Sie die Dezimalzahl 253 ins 7er-System um:
25310 = ???7
Schritt | Division | Ergebnis | Rest | Resultat |
---|---|---|---|---|
1 | 253 / 7 | 36 | 1 | __17 |
2 | 36 / 7 | 5 | 1 | _117 |
3 | 5 / 7 | 0 | 5 | 5117 |
Dezimal => Binär
Wie im Beispiel führen wir eine Reihe von Divisionen durch, um die Dezimalzahl ins Binärsystem zu übertragen. Da das Binärsystem nur zwei Ziffern kennt, wird das Resultat viele Stellen enthalten.
Anzahl Stellen abschätzen
Schätzen Sie zunächst ab, wie viele binäre Stellen das Resultat enthalten wird. Dabei gilt die Faustregel: 3 dezimale Stellen entsprechen ungefähr 10 binäre Stellen.
Dezimalstellen * 10 binäre Stellen = ------------------- 3
Notation in 4er Gruppen
Binäre Zahlen werden einfacher lesbar, wenn Sie die Ziffern in 4er Gruppen (von rechts nach links) anordnen. Die vorderste Gruppe füllen wir mit führenden Nullen auf, bis auch diese aus 4 binären Ziffern besteht.
0010 1010 1111 0001
Beispiel
2475310 = ????2
- Die Dezimalzahl hat 5 Stellen; Die binäre Zahl wird maximal 17 Stellen haben (5 / 3 * 10)
24753 / 2 = 12376 Rest 1 12376 / 2 = 6188 Rest 0 6188 / 2 = 3094 Rest 0 3094 / 2 = 1547 Rest 0 1547 / 2 = 773 Rest 1 773 / 2 = 386 Rest 1 386 / 2 = 193 Rest 0 193 / 2 = 96 Rest 1 96 / 2 = 48 Rest 0 48 / 2 = 24 Rest 0 24 / 2 = 12 Rest 0 12 / 2 = 6 Rest 0 6 / 2 = 3 Rest 0 3 / 2 = 1 Rest 1 1 / 2 = 0 Rest 1
Resultat: 2475310 = 0110 0000 1011 00012
Binäre Zahlen umrechnen
Binäre Zahlen lassen sich relativ einfach ins 8er (Oktal) und 16er (Hexadezimal) System umrechnen. Das liegt daran, dass 8 und 16 Potenzen von 2 sind:
- 23 = 8
- 24 = 16
Deshalb werden binäre Werte häufig als oktale oder hexadezimale Zahlen dargestellt.
Die Umrechnung ins 10er System ist hingegen schwieriger, da 10 keine Potenz von 2 ist.
Binär <=> Oktal
Eine Ziffer im 8er-System entspricht drei Ziffern im 2er-System: 81 = 23
Binäre Zahl ins oktale System übertragen
- Zerlegen Sie die binäre Zahl von rechts nach links in Gruppen von 3 Ziffern.
- Übertragen Sie jede dieser 3er Gruppen ins oktale System.
Binär | Oktal | Binär | Oktal | |
---|---|---|---|---|
000 | 0 | / | 100 | 4 |
001 | 1 | / | 101 | 5 |
010 | 2 | / | 110 | 6 |
011 | 3 | / | 111 | 7 |
Beispiel
0110 0000 1011 00012 = ??? 8
1. 3er Gruppen bilden: 0 110 000 010 110 001 2. Vorderste Gruppe ergänzen: 000 110 000 010 110 001 3. Übertragen ins oktale System: 0 6 0 2 6 1
Resultat: 0110 0000 1011 00012 = 602618
Oktale Zahl ins Binärsystem übertragen
Diese Umwandlung ist ebenso einfach:
- Wandeln Sie einfach jede oktale Ziffer in die drei entsprechenden binären Ziffern um.
- Dabei ist es egal, ob Sie von rechts nach links oder von links nach rechts vorgehen.
- Notieren Sie die binären Ziffern in 4er Gruppen von rechts nach links.
- Ergänzen Sie bei Bedarf die vorderste 4er Gruppe mit führenden Nullen.
Beispiel
5738 = ???2
1. Umwandeln: 5 => 101 7 => 111 3 => 011 2. 4er Gruppen bilden: 0001 0111 1011
Resultat: 5738 = 0001 0111 10112
Binär <=> Hexadezimal
Eine Ziffer im 16er-System entspricht vier Ziffern im 2er-System: 161 = 24
Binäre Zahl ins hexadezimale System übertragen
- Zerlegen Sie die binäre Zahl von rechts nach links in Gruppen von 4 Ziffern.
- Ergänzen Sie bei Bedarf die vorderste 4er Gruppe mit führenden Nullen.
- Übertragen Sie jede dieser 4er Gruppen ins hexadezimale System.
Binär | Hex | Binär | Hex | |
---|---|---|---|---|
0000 | 0 | 1000 | 8 | |
0001 | 1 | 1001 | 9 | |
0010 | 2 | 1010 | A | |
0011 | 3 | 1011 | B | |
0100 | 4 | 1100 | C | |
0101 | 5 | 1101 | D | |
0110 | 6 | 1110 | E | |
0111 | 7 | 1111 | F |
Beispiel
0110 0000 1011 00012 = ??? 16
1. 4er Gruppen bilden: 0110 0000 1011 0001 2. Übertragen ins hexadezimale System: 6 0 B 1
Resultat: 0110 0000 1011 00012 = 60B116
Hexadezimale Zahl ins binäre System übertragen
Wie Sie wohl bereits vermutet haben, drehen wir den Prozess einfach um:
- Wandeln Sie jede hexadezimale Ziffer in die entsprechenden vier binären Ziffern um.
Beispiel
1A5C16 = ????2
1 = 0001 A = 1010 5 = 0101 C = 1100
Resultat: 1A5C16 = 0001 1010 0101 11002
Binär => Dezimal
Potenzen
Die offensichtliche Methode zur Umrechnung ins Dezimalsystem basiert auf dem Wert der einzelnen binären Ziffern. Von rechts nach links verdoppelt sich der Wert der einzelnen Ziffern.
- Schreibe die binären Ziffern von oben nach unten.
- Schreibe von unten nach oben den Wert der Zahl.
- Multipliziere jede Ziffer mit ihrem Wert.
- Addiere alle Werte.
Beispiel
1001 01012 = ???10
Ziffer | Wert | Produkt |
---|---|---|
1 | 128 | 128 |
0 | 64 | 0 |
0 | 32 | 0 |
1 | 16 | 16 |
0 | 8 | 0 |
1 | 4 | 4 |
0 | 2 | 0 |
1 | 1 | 1 |
Summe | 149 |
Resultat: 1001 01012 = 14910
Verdoppelungsmethode
Bei der Verdoppelungsmethode verwenden wir nur eine Addition und die Multiplikation mit 2. Daher wird es wesentlich einfacher binäre Zahlen im Kopf umzurechnen.
Für jede binäre Stelle führen wir von links nach rechts zwei Rechnungen durch:
- Multipliziere das bisherige Resultat mit 2
- Addiere die binäre Stelle zum Resultat
Beispiel
1001 01012 = ???10
Binäre Ziffer | Berechnung | Resultat |
---|---|---|
Start | 0 | |
1001 0101 | 0*2 + 1 | 1 |
1001 0101 | 1*2 + 0 | 2 |
1001 0101 | 2*2 + 0 | 4 |
1001 0101 | 4*2 + 1 | 9 |
1001 0101 | 9*2 + 0 | 18 |
1001 0101 | 18*2 + 1 | 37 |
1001 0101 | 37*2 + 0 | 74 |
1001 0101 | 74*2 + 1 | 149 |
Resultat: 1001 01012 = 14910
Mit dieser Methode lassen sich auch andere Zahlensysteme ins Dezimalsystem übertragen. Um eine Zahl im 16er System (Hexadezimal) ins Dezimalsystem zu übertragen, wird einfach das bisherige Resultat mit 16 multipliziert.