Arbeiten mit Binärzahlen
Binärzahlen in Dezimalzahlen umwandeln
Um eine Binärzahl in eine Dezimalzahl umzuwandeln, wird das Produkt aus Stellenwert und Ziffer jeder Stelle aufsummiert.
| Potenz | Stellenwert | Ziffer | Stellenwert * Ziffer |
|---|---|---|---|
| 24 | 16 | 1 | 16 * 1 = 16 |
| 23 | 8 | 0 | 8 * 0 = 0 |
| 22 | 4 | 0 | 4 * 0 = 0 |
| 21 | 2 | 1 | 2 * 1 = 2 |
| 20 | 1 | 0 | 1 * 0 = 0 |
| 2-1 | 0,5 | 0 | 0,5 * 0 = 0 |
| 2-2 | 0,25 | 1 | 0,25 * 1 = 0,25 |
| 2-3 | 0,125 | 0 | 0,125 * 0 = 0 |
| 2-4 | 0,0625 | 1 | 0,0625 * 1 = 0,0625 |
10010,01012 = 16 + 0 + 0 + 2 + 0 + 0 + 0,25 + 0 + 0,0625 = 18,312510
Natürliche Dezimalzahlen in Binärzahlen umwandeln
Eine natürliche Dezimalzahl lässt sich entweder mit einer Stellenwerttabelle oder dem Divisions-Verfahren in eine Binärzahl umwandeln.
Im Beispiel soll die Zahl 52510 in eine Binärzahl umgewandelt werden.
- Divisions-Verfahren
- Stellenwerttabelle
| Ganzzahlige Division | Quotient | Divisionsrest |
|---|---|---|
| 525 : 2 | 262 | 1 |
| 262 : 2 | 131 | 0 |
| 131 : 2 | 65 | 1 |
| 65 : 2 | 32 | 1 |
| 32 : 2 | 16 | 0 |
| 16 : 2 | 8 | 0 |
| 8 : 2 | 4 | 0 |
| 4 : 2 | 2 | 0 |
| 2 : 2 | 1 | 0 |
| 1 : 2 | 0 | 1 |
52510 = 10000011012
| Potenz | Stellenwert | Vergleich | Restwert | Ziffer |
|---|---|---|---|---|
| 29 | 512 | 512 < 525 | 525 - 512 = 13 | 1 |
| 28 | 256 | 256 > 13 | 13 | 0 |
| 27 | 128 | 128 > 13 | 13 | 0 |
| 26 | 64 | 64 > 13 | 13 | 0 |
| 25 | 32 | 32 > 13 | 13 | 0 |
| 24 | 16 | 16 > 13 | 13 | 0 |
| 23 | 8 | 8 < 13 | 13 - 8 = 5 | 1 |
| 22 | 4 | 4 < 5 | 5 - 4 = 1 | 1 |
| 21 | 2 | 2 > 1 | 1 | 0 |
| 20 | 1 | 1 = 1 | 1 - 1 = 0 | 1 |
52510 = 10000011012
Bilden des Zweierkomplements
Das Zweierkomplement entsteht, indem zunächst das Einerkomplement gebildet wird (alle Bits werden invertiert) und anschließend eine 1 hinzuaddiert wird. Einer positiven Binärzahl sind dabei unendlich viele Nullen vorangestellt.
Im Beispiel soll die Zahl -9510 im Zweierkomplement dargestellt werden.
| 2n | ... | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Dezimalzahl ohne Vorzeichen in Binärzahl umwandeln | 0 | ... | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 1 |
| Invertieren | 1 | ... | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 |
| 1 Addieren | 1 | ... | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 |
Die Rückumwandlung erfolgt analog.
Reelle Dezimalzahlen in Binärzahlen umwandeln
Eine reelle Dezimalzahl lässt sich entweder mit einer Stellenwerttabelle oder dem Multiplikations-Verfahren in eine Binärzahl umwandeln.
Im Beispiel soll die Zahl 0,110 in eine Binärzahl umgewandelt werden.
- Multiplikations-Verfahren
- Stellenwerttabelle
| Multiplikation | Produkt | Vorkommazahl |
|---|---|---|
| 0,1 * 2 | 0,2 | 0 |
| 0,2 * 2 | 0,4 | 0 |
| 0,4 * 2 | 0,8 | 0 |
| 0,8 * 2 | 1,6 | 1 |
| 0,6 * 2 | 1,2 | 1 |
| 0,2 * 2 | 0,4 | 0 |
| ... | ... | ... |
0,110 = 0,000110...2
| Potenz | Stellenwert | Vergleich | Restwert | Ziffer |
|---|---|---|---|---|
| 2-1 | 0,5 | 0,5 > 0,1 | 0,1 | 0 |
| 2-2 | 0,25 | 0,25 > 0,1 | 0,1 | 0 |
| 2-3 | 0,125 | 0,125 > 0,1 | 0,1 | 0 |
| 2-4 | 0,0625 | 0,0625 < 0,1 | 0,1 - 0,0625 = 0,0375 | 1 |
| 2-5 | 0,03125 | 0,03125 < 0,0375 | 0,0375 - 0,03125 = 0,00625 | 1 |
| 2-6 | 0,015625 | 0,015625 > 0,00625 | 0,00625 | 0 |
| ... | ... | ... | ... | ... |
0,110 = 0,000110...2
Reelle Dezimalzahlen in Gleitkommazahlen umwandeln
Bei der Umwandlung einer reellen Zahl in eine Gleitkommazahl werden Vor- und Nachkommazahl zunächst in Binärzahlen umgewandelt. Durch Verschieben des Kommas zur führenden 1, Runden auf das LSB und Entfernen der führenden 1 entsteht die Mantisse. Zum Exponenten wird anschließend der Bias addiert (127 bei einfacher, 1023 bei doppelter Genauigkeit), und das Vorzeichen wird als einzelnes Bit gespeichert.
Im Beispiel soll die Zahl -27,0410 in eine Gleitkommazahl mit einfacher Genauigkeit umgewandelt werden.
| Eingabe | Ausgabe | |
|---|---|---|
| Vorkommazahl in Binärzahl umwandeln | 27 | 11011 |
| Nachkommazahl in Binärzahl umwandeln | 0,04 | 00001010001111010111... |
| Vor- und Nachkommazahl zusammenführen | 11011 und 00001010001111010111... | 11011,00001010001111010111... |
| Komma zur führenden 1 verschieben | 11011,00001010001111010111...*20 | 1,101100001010001111010111...*24 |
| Runden auf das LSB | 1,101100001010001111010111...*24 | 1,10110000101000111101100*24 |
| Führende 1 entfernen | 1,10110000101000111101100*24 | 10110000101000111101100*24 |
| Bias zum Exponenten addieren | 4 + 127 = 131 | 10000011 |
| Vorzeichen umwandeln | - | 1 |
-27,0410 = 1 10000011 101100001010001111011002
Binärzahlen addieren und subtrahieren
Für die Addition von Binärzahlen gelten vier Regeln. Die Subtraktion erfolgt
durch Addition des Zweierkomplements: a - b = a + (-b).
- Fall 1:
0 + 0 = 0 - Fall 2:
0 + 1 = 1 - Fall 3:
1 + 0 = 1 - Fall 4:
1 + 1 = 0 (Übertrag 1)
- a + b
- (-a) + b
- a + (-b)
- (-a) + (-b)
Im Beispiel werden die Zahlen 3 und 47 addiert.
00000011 (3)
+ 00101111 (47)
1111
---------------
= 00110010 (50)
Im Beispiel werden die Zahlen -3 und 47 addiert.
11111101 (-3)
+ 00101111 (47)
11111111
----------------
= 00101100 (44)
Im Beispiel werden die Zahlen 3 und -47 addiert.
00000011 (3)
+ 11010001 (-47)
11
----------------
= 11010100 (-44)
Im Beispiel werden die Zahlen -3 und -47 addiert.
11111101 (-3)
+ 11010001 (-47)
1111 1
----------------
= 11001110 (-50)
Der bei der Addition des Zweierkomplements möglicherweise auftretende Stellenüberlauf wird ignoriert.