logo

Addition und Subtraktion im Zweierkomplement

In unserem vorherigen Abschnitt haben wir gelernt, wie wir arithmetische Operationen wie Addition und Subtraktion mithilfe des 1er-Komplements durchführen können. In diesem Abschnitt lernen wir, diese Operationen mit dem Zweierkomplement durchzuführen.

Beispiele für Python-Programme

Addition im Zweierkomplement

Wenn wir zwei Binärzahlen im Zweierkomplement addieren, sind drei verschiedene Fälle möglich:

Fall 1: Addition der positiven Zahl mit einer negativen Zahl, wenn die positive Zahl einen größeren Betrag hat.

Finden Sie zunächst das 2er-Komplement der gegebenen negativen Zahl. Summieren Sie mit der angegebenen positiven Zahl. Wenn wir den End-Around-Übertrag 1 erhalten, ist die Zahl eine positive Zahl und das Übertragsbit wird verworfen und die verbleibenden Bits sind das Endergebnis.

Beispiel: 1101 und -1001

  1. Finden Sie zunächst das 2er-Komplement der negativen Zahl 1001. Um das 2er-Komplement zu finden, ändern Sie also alle 0 in 1 und alle 1 in 0 oder finden Sie das 1er-Komplement der Zahl 1001. Das 1er-Komplement der Zahl 1001 ist 0110, und Addiere 1 zum LSB des Ergebnisses 0110. Das Zweierkomplement der Zahl 1001 ist also 0110+1=0111
  2. Addieren Sie beide Zahlen, also 1101 und 0111;
    1101+0111=1 0100
  3. Durch Addition beider Zahlen erhalten wir den End-Around-Carry 1. Den End-Around-Carry verwerfen wir. Die Addition beider Zahlen ergibt also 0100.

Fall 2: Addition des positiven Werts mit einem negativen Wert, wenn die negative Zahl einen höheren Betrag hat.

Addieren Sie zunächst einen positiven Wert mit dem Zweierkomplementwert der negativen Zahl. Hier wird kein End-Around-Carry gefunden. Also nehmen wir das 2er-Komplement des Ergebnisses, um das Endergebnis zu erhalten.

Hinweis: Das Ergebnis ist ein negativer Wert.

Beispiel: 1101 und -1110

  1. Suchen Sie zunächst das 2er-Komplement der negativen Zahl 1110. Um das 2er-Komplement zu finden, addieren Sie also 1 zum LSB des 1er-Komplement-Werts 0001.
    0001+1=0010
  2. Addieren Sie beide Zahlen, also 1101 und 0010;
    1101+0010= 1111
  3. Finden Sie das 2er-Komplement des Ergebnisses 1110, das das Endergebnis ist. Das 2er-Komplement des Ergebnisses 1110 ist also 0001, und fügen Sie vor der Zahl ein negatives Vorzeichen hinzu, damit wir erkennen können, dass es sich um eine negative Zahl handelt.

Fall 3: Addition zweier negativer Zahlen

In diesem Fall ermitteln wir zunächst das Zweierkomplement der beiden negativen Zahlen und addieren dann diese beiden Komplementzahlen. In diesem Fall erhalten wir immer den End-Around-Carry, der zum LSB addiert wird, und das Endergebnis vergessend, nehmen wir das 2er-Komplement des Ergebnisses.

Hinweis: Das Ergebnis ist ein negativer Wert.

Beispiel: -1101 und -1110 im Fünf-Bit-Register

  1. Finden Sie zunächst das 2er-Komplement der negativen Zahlen 01101 und 01110. Um das 2er-Komplement zu finden, addieren wir also 1 zum LSB des 1er-Komplements dieser Zahlen. Das Zweierkomplement der Zahl 01110 ist 10010 und 01101 ist 10011.
  2. Wir addieren beide Komplementzahlen, also 10001 und 10010;
    10010+10011= 1 00101
  3. Durch Addition beider Zahlen erhalten wir den End-Around-Übertrag 1. Dieser Übertrag wird verworfen und das Endergebnis ist das 2er-Komplement des Ergebnisses 00101. Das 2er-Komplement des Ergebnisses 00101 ist also 11011, und wir addieren ein Negativ Geben Sie vor der Zahl ein Vorzeichen ein, damit wir erkennen können, dass es sich um eine negative Zahl handelt.

Subtraktion mit Zweierkomplement

Dies sind die folgenden Schritte, um zwei Binärzahlen mithilfe des Zweierkomplements zu subtrahieren

  • Finden Sie im ersten Schritt das 2er-Komplement des Subtrahends.
  • Addiere die Komplementzahl mit dem Minuend.
  • Wenn wir den Übertrag durch Addition beider Zahlen erhalten, verwerfen wir diesen Übertrag und das Ergebnis ist positiv. Andernfalls nehmen wir das Zweierkomplement des Ergebnisses, das negativ ist.

Beispiel 1: 10101 - 00111

Wir nehmen das Zweierkomplement des Subtrahends 00111, also 11001. Nun addieren wir sie. Also,

10101+11001 =1 01110.

Im obigen Ergebnis erhalten wir das Übertragsbit 1. Also verwerfen wir dieses Übertragsbit und es bleibt das Endergebnis und eine positive Zahl übrig.

Beispiel 2: 10101 - 10111

Wir nehmen das Zweierkomplement des Subtrahends 10111, was 01001 ergibt. Jetzt addieren wir beide Zahlen. Also,

10101+01001 =11110.

Im obigen Ergebnis haben wir das Übertragsbit nicht erhalten. Berechnen Sie also das 2er-Komplement des Ergebnisses, also 00010. Es ist die negative Zahl und die endgültige Antwort.