Arbeiten mit Binärzahlen
Binärzahlen in Dezimalzahlen umwandeln
Zur Umwandlung einer Binärzahl in eine Dezimalzahl muss das Produkt aus Stellenwert und Ziffer jeder Stelle aufsummiert werden.
| 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
Zur Umwandlung einer natürlichen Dezimalzahl in eine Binärzahl kann entweder eine Stellenwerttabelle oder das Divisions-Verfahren verwendet werden.
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
Zum Bilden des Zweierkomplements wird zunächst das Einerkomplement gebildet, d.h. alle Bits werden invertiert. Hierbei ist zu beachten, dass einer positiven Binärzahl unendlich viele Nullen vorangestellt sind. Anschließend wird noch eine 1 hinzuaddiert.
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
Zur Umwandlung einer reellen Dezimalzahl in eine Binärzahl kann entweder eine Stellenwerttabelle oder das Multiplikations-Verfahren verwendet werden.
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 zunächst Vor- und Nachkommazahl in Binärzahlen umgewandelt. Anschließend wird durch Gleiten bzw. Verschieben des Kommas zur führenden 1, dem Runden auf das LSB sowie dem Entfernen der führenden 1 die Mantisse ermittelt. Nach dem Ermitteln der Mantisse wird zum Exponenten noch der Bias (127 bei einfacher Genauigkeit, 1023 bei doppelter Genauigkeit) hinzuaddiert sowie das Vorzeichen umgewandelt.
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 | 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 folgende Regeln:
- Fall 1:
0 + 0 = 0 - Fall 2:
0 + 1 = 1 - Fall 3:
1 + 0 = 1 - Fall 4:
1 + 1 = 0 (Übertrag 1)
Die Subtraktion von Binärzahlen erfolgt durch die Addition des
Zweierkomplements. Es gilt: a - b = a + (-b).
- 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 auftretende mögliche Stellenüberlauf wird ignoriert.