GATE | GATE-CS-2017 (Set 1) | Question 35

When two 8-bit numbers A7 … A0 and B7 … B0 in 2’s complement representation (with A0 and B0 as the least significant bits) are added using ripple-carry adder. the sum bits obtained are S7 … S0 and the carry bits are C7 … C0. An overflow is said to have occured if

(A) the carry bit C7 is 1
(B) all the carry bits (C7, … , C0 ) are 1
(C) (A7 . B7 . S7‘ + A7‘ . B7‘ . S7) is 1
(D) (A0 . B0 . S0‘ + A0‘ . B0‘ . S0) is 1

Answer: (C)

Explanation: Overflow indicates that the result was too large or too small to fit in the original data type.
Overflow flag indicates an overflow condition for a signed operation. Signed numbers are represented in two’s complement representation.
The overflow occurs only when two positive number are added and the result is negative or two negative number are added and the result is positive. Otherwise, the sum has not overflowed.

Therefore, a XOR operation can quickly determine if an overflow condition exists. i.e.,
(A7 . B7 )⊕(S7) = (A7 . B7 . S7‘ + A7‘ . B7‘ . S7 = 1

This explanation is contributed by Mithlesh Upadhyay.

Another Solution

      A7 A6 A5 A4 A3 A2 A1 A0 
      B7 B6 B5 B4 B3 B2 B1 B0 
      C6 C5 C4 C3 C2 C1 C0              // carry bits
   C7 S7 S6 S5 S4 S3 S2 S1 S0   // this is the result 

So, it depends on S7 for overflow. when S7 is 0 while adding two negative numbers and when S7 is 1 while adding two positive numbers
A7. B7. S7′ + A7′. B7′.S7 = 1

This solution is contributed by Sumouli Chaudahry.

Quiz of this Question

My Personal Notes arrow_drop_up