Addition

Rechnung Ergebnis Übertrag
0+00+0 00 00
0+10+1 11 00
1+01+0 11 00
1+11+1 00 11
1+1+11+1+1 11 11

Problem: Addiert man zwei Binärzahlen miteinander und entsteht ein Übertrag, dann wird das sogenannte Carry-Bit gesetzt.

\rightarrow Ist das Carry-Bit 020_2, dann ist das Ergebnis korrekt, ist es 121_2 gibt es einen Overflow/Überlauf. \rightarrow Das Ergebnis sollte geprüft werden, falls das Carry-Bit gesetzt ist.

Mögliche Lösungsansätze für das behandeln eines Überlaufes:

  • Programm wird unterbrochen mit einer Fehlermeldung
  • Datentyp zur Konstruktionszeit ändern
  • Ignorieren und verwerfen (schlecht!)

Subtraktion

Rechnung Ergebnis Übertrag (Entleihung)
000-0 00 00
010-1 11 11
101-0 11 00
111-1 00 00
0110-1-1 00 11
1111-1-1 11 11

Negative Zahlen im Dualsystem

In bisherigen Betrachtungen wurden immer nur positive Ganzzahlen betrachtet. Somit ist der Wertebereich einer nn-stelligen Dualzahl 00 bis 2n12^{n}-1. Möchte man negative Zahlen darstellen, muss man somit die negativen Zahlen mit in einer nn-stelligen Dualzahl darstellen verschiebt sich der Wertebereich. Je nach Darstellungsform wechselt die Anzahl der darstellbaren Zahlen im positven und negativen Bereich. Untenstehend ist ein Zahlenkreis mit einem Beispiel einer möglichen Darstellungsform zu sehen.

Einerkomplement

Das Einerkomplement benutzt das Most-Significant-Bit (MSB) als Indikator dafür ob eine Zahl positiv oder negativ ist. Um eine negative Zahl zu errechnen muss die positive Zahl im Dualsystem invertiert werden. Aufgrund dieser Darstellungsform gibt es zwei Repräsentationsformen, weshalb es ungeeignet ist für die Benutzung im Computer und für mathematisch korrekte Berechnungen.

Dualzahl mit MSB+ Dezimalwert Dualzahl mit MSB- Dezimalwert
00000000 +0+0 11111111 0-0
00010001 +1+1 11101110 1-1
00100010 +2+2 11011101 2-2
00110011 +3+3 11001100 3-3
01000100 +4+4 10111011 4-4
01010101 +5+5 10101010 5-5
01100110 +6+6 10011001 6-6
01110111 +7+7 10001000 7-7

Zweierkomplement

Das Zweierkomplement entsteht aus dem Einerkomplement und benutzt somit ebenfalls das Einerkomplement. Um zum Zweierkomplement zu gelangen muss jedoch die Zahl 11 zur negativen Zahl hinzu addiert werden. Hiermit wird das Problem der doppelten Null gelöst und es ist im negativen Wertebereich eine Zahl mehr möglich zu speichern.

Dualzahl mit MSB+ Dezimalwert Rechnung Dualzahl mit MSB- Dezimalwert
00000000 +0+0 1111+11111+1 00000000 +0+0
00010001 +1+1 1110+11110+1 11111111 1-1
00100010 +2+2 1101+11101+1 11101110 2-2
00110011 +3+3 1100+11100+1 11011101 3-3
01000100 +4+4 1011+11011+1 11001100 4-4
01010101 +5+5 1010+11010+1 10111011 5-5
01100110 +6+6 1001+11001+1 10101010 6-6
01110111 +7+7 1000+11000+1 10011001 7-7
    1111+11111+1 10001000 8-8

Subtraktion mittels Komplementbildung

Vorteile der Komplementbildung

1510+110=161011112+00012=100002Falsch!110+110=010 15_{10}+1_{10}=16_{10} \\ 1111_{2}+0001_{2}=10000_{2} \rightarrow \text{Falsch!} -1_{10}+1_{10}=0{10}