Warum werden alle 1 als zweiter Eingang bei der Dekrementoperation von ALU verwendet?

Angenommen, die ersten vier Dateneingänge sind X (X0, X1, X2, X3) und die zweiten vier Dateneingänge sind Y (Y0, Y1, Y2, Y3) in einer 4-Bit-ALU. Warum werden "alle 1" als Eingabe für Y in der Dekrementoperation von ALU verwendet?

Denn X+0xf = X-1 für alle X.

Antworten (3)

Weil alle Einsen in der Zweierkomplementcodierung -1 sind.

Denk darüber nach. Bei einer N-Bit-Zahl ändert das Hinzufügen von 2 N den Wert nicht, da die Änderung im ersten Bit nach der Zahl erfolgt. Betrachten Sie beispielsweise das Addieren von 16 zu einer 4-Bit-Zahl. Im Binärformat heißt das:

    XXXX
 + 10000
 -------
   1XXXX

was immer noch nur XXXX ist, weil Sie per Definition einer 4-Bit-Zahl nur die 4 Bits speichern.

Wenn also das Addieren von 2 N den gleichen Wert ergibt, dann ergibt das Addieren von 2 N -1 einen weniger, was dasselbe ist wie das Subtrahieren von 1.

Es könnte einfacher sein, dies in Dezimalzahlen zu verstehen. Stellen Sie sich vor, wir rechnen mit dreistelligen Zahlen zur Basis 10: 445, 900, 132, 042, 007 usw. Wir können die Zahlen addieren, aber das Ergebnis wird immer auf drei Ziffern gekürzt. Hier ist ein Beispiel:

900 + 132 = 1032 032

Schauen Sie sich nun an, was passiert, wenn wir 999 zu einer Zahl addieren:

042 + 999 = 1041 041

041 + 999 = 1040 040

040 + 999 = 1039 039

Solange wir die vierte Ziffer weglassen, funktioniert das Addieren von 999 (der größtmöglichen dreistelligen Zahl) genauso wie das Subtrahieren von 1!

Binär funktioniert genauso. In Ihrem Beispiel funktioniert das Addieren der größtmöglichen Vier-Bit-Zahl genauso wie das Subtrahieren von 1. Auch dies liegt daran, dass wir den Übertrag vom hohen Bit weglassen.

0110 + 1111 = 10101 0101

0101 + 1111 = 10100 0100

0100 + 1111 = 10011 0011

0011 + 1111 = 10010 0010

Dies wird Zweierkomplement-Arithmetik genannt . Mit diesem System können Sie das "Negative" jeder n-Bit-Binärzahl berechnen, indem Sie es davon subtrahieren 2 N . Für Vier-Bit-Zahlen funktioniert es wie folgt:

1 = 2 4 1 = 10000 0001 = 1111

5 = 2 4 5 = 10000 0101 = 1011

Das Addieren von 1011 zu einer Vier-Bit-Zahl ist also genauso wie das Subtrahieren von 5, solange Sie den letzten Übertrag weglassen.

Es gibt einen schnelleren und gebräuchlicheren Weg, das Zweierkomplement zu berechnen – alle Bits invertieren und dann eins addieren. Auf diese Weise können Sie mithilfe von Inversion und Addition ein 4-Bit-Negativ berechnen, anstatt eine 5-Bit-Subtraktion zu benötigen. So berechnen Sie -1 und -5 mit dieser Methode:

1 = ¬ 0001 + 1 = 1110 + 1 = 1111

5 = ¬ 0101 + 1 = 1010 + 1 = 1011

Stellen Sie sich die Subtraktion zwischen zwei Zahlen als Addition der Umkehrung der zweiten Zahl vor,
x+(-y)
. Um also zu dekrementieren, addieren Sie -1 .
Dies ausgedrückt mit der Methode der Zweierkomplementcodierung , die besagt: Um die Umkehrung einer Zahl zu erhalten, finden Sie ihr Komplement (ersetzen Sie 0 durch 1 und umgekehrt) und addieren Sie dann 1 zum Ergebnis , führt zu Ihrer Frage, in der: 1 in binärer Darstellung ist: 0001 , sein inverses Element (dh -1) ist: 1111.
Überprüfen Sie Darstellungen von vorzeichenbehafteten Zahlen zum weiteren Lesen.