Subtraktion von vorzeichenbehafteten Zweierkomplementzahlen

Subtraktion von vorzeichenbehafteten Zweierkomplementzahlen

Angenommen, wir verwenden eine 3-Bit-Zweierkomplementzahl und führen eine Subtraktionsoperation aus. Der Minuend ist +3 und der Subtrahend ist -4. Wir sollten das Zweierkomplement des Subtrahends erhalten und es zum Minuend addieren. +3=011 -4=100--->das Zweierkomplement ist wieder 100. Jetzt addieren wir sie und erhalten 111, was falsch ist. Denn wir sollten 3-(-4)=+7 erhalten, aber das Ergebnis ist negativ! Wie analysieren Sie den Überlauf? Warum ist das Ergebnis falsch?

Antwort1

Wenn Sie das äußerste linke Bit zur Anzeige des Vorzeichens verwenden, können Sie nicht die gesamte 3-Bit-Zahl verwenden. 100ist entweder (positiv, vorzeichenlos) 4 oder tatsächlich (negativ) 0.

Damit Ihre Zahl „-4“ ist, muss sie tatsächlich sein 1100und nicht nur 100. Sie arbeiten dann mit den Informationen, die Sie haben, und wissen, dass Sie eine 3-Bit-Zahl haben und dass eine dieser Zahlen negativ ist.

Was ich meine, ist der Wert, den Sie bekommenIst7. 111ist für 3-Bit-Zahlen ohne Vorzeichen genau 7.

Sie berücksichtigen einfach nicht die Tatsache, dass die erste Ziffer nicht Ihre Vorzeichenziffer ist, wenn Sie die 3-Bit-Komplementfunktion verwenden. Sie müssen sich zuerst Ihre Zahl ansehen und Informationen verwerfen, die für die unmittelbare Operation nicht relevant sind, d. h. die Vorzeichenziffer. Das Vorzeichen sagt Ihnen, was Sie damit tun müssen, aber es ist kein „echter“ Teil des Wertes dieser Zahl.

Wenn Sie eine 3-Bit-Zahl mit Vorzeichen verwenden, können Sie per Definition nur 2-Bit-Additionen und -Subtraktionen durchführen.

verwandte Informationen