2016-03-19 7 views
0

gegeben ein n-Bit-2-Komplement-Addierer/Subtrahierer was ist die Überlauflogik. Ich habe keinen Zugriff auf das interne Schaltungsdesign. Nur 2 n-Bit-Nummern, Summe, Add/Sub, Übertrag (In), Übertrag (Out)Wie Überlauf zu bestimmen, wenn c (n-2) nicht zugänglich ist

+0

Ist [diese Diskussion über unsigned carry vs. signed overflow help] (http://teaching.idyllen.com/dat2343/10f/notes/040_overflow.txt)? Es gibt einige nette Beispiele mit 4-Bit-Nummern zum tragen. –

Antwort

0

In diesem Fall gibt es einige Regeln für die Ermittlung des Überlaufs. (Hinweis: Dies gilt nur für die Addition, aber A - B als A + (-B) behandeln, können Sie auch die Regeln für die Subtraktion herausfinden).

  1. Wenn die beiden Eingänge unterschiedliche Vorzeichen haben, besteht keine Möglichkeit eines Überlaufs.

  2. Wenn sie das gleiche Vorzeichen haben, aber der Ausgang ein anderes Vorzeichen hat, dann haben Sie einen Überlauf. Wenn Sie beispielsweise zwei positive Zahlen addieren, aber ein negatives Ergebnis erhalten, wissen Sie, dass es sich um einen Überlauf handelt (da zwei positive Werte nicht zu einem negativen addiert werden können).

Mit anderen Worten, Overflow = (Sign(A) == Sign(B)) and (Sign(Sum) != Sign(A)).

+0

Meinst du carry (out) bit! = Zeichen (A) oder lastBit (sum)! = Zeichen (A)? – sayeed

+1

@sayeed das Vorzeichen einer Zahl ist nur das höchstwertige Bit (d. H. * Nicht * das Ausführen). –