Grundrechenarten mit Dualzahlen (Binärzahlen)
Arithmetische Berechnungen basieren auf elementaren
Zahlenarten:
- Natürliche Zahlen (positiv, ohne Nachkommastellen)
- Ganze Zahlen (positiv und negativ, ohne Nachkommazahlen)
- Rationale Zahlen (gebrochene Zahlen)
- Reelle Zahlen
Diese Zahlen werden im Rechner durch Binärzahlen angenähert.
Wie das Dezimalsystem ist auch das Dualsystem ein
Stellenwertsystem, d.h. der Wert einer Zahl ergibt sich aus der
Stelle in der Zahl multipliziert mit dem Wert der Ziffer.
Beispiel:
a=(12345)10=1*104+2*103+3*102+4*101+5*100
a=(100110)2=1*25+0*24+0*23+1*22+1*21+0*20=32+4+2=38
Addition, Subtraktion, Multiplikation und Division
Wie beim Addieren von Dezimalzahlen treten auch beim Addieren
von Dualzahlen Überträge auf. Während es im Dezimalsystem
verschiedene Zahlenpaarungen gibt, die zu einem Übertrag führen,
ist dies bei den Dualzahlen nur in einem Fall möglich. Deshalb
reduzieren sich die Additionsregeln auf die folgenden vier
Additionen:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10
Beispiel:
10110
+ 11011
1111
______
110001
Die Subtraktion verläuft im Prinzip genauso wie im
Dezimalsystem. Auch hier ist eventuell ein Übertrag zu
berücksichtigen. Wie bei den Additionen benötigt man vier
Subtraktionsregeln:
0 - 0 = 0
0 - 1 = -1 (1 mit Übertrag 1; 10 - 1 = 1; entspricht dem
Verfahren der Dezimalsubtraktion)
1 - 0 = 1
1 - 1 = 0
Beispiel:
11011
- 10110
1
_______
00101
Dieses Verfahren funktioniert wie bei den Dezimalzahlen, solange
der Minuend größer ist als der Subtrahend. Ist dies nicht der
Fall, erhält man negative Werte.
Die Multiplikation erweist sich schon als etwas komplizierter.
Das betrifft aber nicht die Art und Weise des Rechnens, sondern
die Addition der einzelnen Ziffern.
Beispiel:
110 * 11
-----------
110
110
11
-----------
10010
111 * 1111
---------------
111
111
111
111
1
10
1
10
--------------
1101001
Beim Übertrag sind folgende Berechnungen zu berücksichtigen:
1+1 = 10
1+1+1= 11
1+1+1+1 = 100
Alternativ lässt sich aber mit Zwischensummen rechnen:
111 * 1111
---------------
111
111
-------
10101
111
---------
110001
111
---------------
1101001
An diesem Beispiel wird auch deutlich, dass die
Multiplikation auf eine Addition zurückzuführen ist. Das
schriftliche Dividieren der Dualzahlen funktioniert wie im
Dezimalsystem.
Beispiel:
110 : 11 =10
11
---
00
1101001 : 111 = 1111
111
---
1100
111
------
1010
111
------
111
111
-----
0
110 : 1000 = 0,11
1000
-------
1000
1000
-------
0
110 : 101 = 1,00110011…………
101
-----
1000
101
------
110
101
-----
1000
101
-------
110
101
-------
1
Das letzte Beispiel veranschaulicht die Aussage „Dezimalzahlen
werden durch Binärzahlen angenähert“. 1102 : 1012 entspricht 6 :
5. Im Dezimalsystem ist das Ergebnis 1,2, im Dualsystem eine
Periode. Die Division ist auf eine Subtraktion zurückzuführen.
Negative Zahlen
Aus der "normalen" Mathematik kennt man die
Darstellung vorzeichenbehafteter Zahlen als Kettung aus "Vorzeichen"
und "Betrag". Diese Form der
Zahlendarstellung lässt sich auf Computern nur mit erhöhtem
Aufwand realisieren.
Da es im Computer nur die Zustände 0 und 1 gibt,
existieren zur
Darstellung negativer Zahlen unterschiedliche Ansätze:
1. Vorzeichenwert: Zur Darstellung positiver und negativer
Zahlen wird ein zusätzliches Bit für das Vorzeichen eingefügt:
0111 entspricht +7, 1111 entspricht -7. Es gibt allerdings zwei
Darstellungen für 0: 0000 und 1000.
2. 1er-Komplement: Zunächst wird der Betrag der Zahl
dargestellt. Ist die Zahl negativ, wird jedes Bit invertiert.
0111 entspricht +7, 1000 entspricht -7. Auch hier gibt es zwei
Darstellungen für die 0: 0000 und 1111.
3. 2er-Komplement: Zunächst wird der Betrag der Zahl
dargestellt. Ist die Zahl negativ, wird das 1er-Komplement der
Zahl gebildet und anschließend beim niedrigsten Stellenwert 1
addiert. 0111 entspricht wieder der Zahl +7, 1001 entspricht -7
(1er-Komplement 1000 + 1). Als Besonderheit existiert jetzt die
negative Zahl -8: 1000.
4. Excess: Zur Zahl wird eine Konstante k hinzuaddiert. Dann
wird die Summe der positiven Zahl in die Binärdarstellung
gewandelt. Diese Darstellung wird für Zahlen ohne
Nachkommastellen verwandt. Die Konstante k hängt von der
Bitgröße der zu verwendenden Zahlen ab. Für Excess7 ist k=7, für
Excess15 k=15 usw.
Die folgende Tabelle stellt die vier Verfahren noch einmal im
Vergleich dar:
Codierung
|
Vorzeichenwert
|
1er-Komplement
|
2er-Komplement
|
Excess7
|
1111
|
-7
|
-0
|
-1
|
8
|
1110
|
-6
|
-1
|
-2
|
7
|
1101
|
-5
|
-2
|
-3
|
6
|
1100
|
-4
|
-3
|
-4
|
5
|
1011
|
-3
|
-4
|
-5
|
4
|
1010
|
-2
|
-5
|
-6
|
3
|
1001
|
-1
|
-6
|
-7
|
2
|
1000
|
-0
|
-7
|
-8
|
1
|
0111
|
+7
|
+7
|
+7
|
0
|
0110
|
+6
|
+6
|
+6
|
-1
|
0101
|
+5
|
+5
|
+5
|
-2
|
0100
|
+4
|
+4
|
+4
|
-3
|
0011
|
+3
|
+3
|
+3
|
-4
|
0010
|
+2
|
+2
|
+2
|
-5
|
0001
|
+1
|
+1
|
+1
|
-6
|
0000
|
+0
|
+0
|
0
|
-7
|
Das 2er-Komplement hat den Vorteil, dass alle Zahlen nur
einmal vorkommen und dass die Vorzeichen denen der
entsprechenden Dezimalzahl gleichen. Für die Subtraktion bietet sich
damit ein weiteres Verfahren an: Man subtrahiert eine Zahl, indem
man ihr Zweierkomplement addiert und den führenden Übertrag
ignoriert, falls er den Wert 1 hat; andernfalls zeigt er an,
dass das Ergebnis negativ ist. Damit dieses Verfahren richtig
funktioniert, muss auf die Anzahl der Stellen geachtet werden.
Ist das Ergebnis eine fünfstellige Dualzahl (einschließlich
Vorzeichen), müssen auch die Ausgangszahlen fünfstellig notiert
werden.
Beispiel:
011011
011011
- 010110 +101010
Zweierkomplement
_______
1000101
Die führende 1 wird gestrichen. Das Ergebis ist 101.