edited by
18,394 views
54 votes
54 votes

We consider the addition of two $2's$ complement numbers $ b_{n-1}b_{n-2}\dots b_{0}$ and $a_{n-1}a_{n-2}\dots a_{0}$. A binary adder for adding unsigned binary numbers is used to add  the two numbers. The sum is denoted by $ c_{n-1}c_{n-2}\dots c_{0}$ and the carry-out by $ c_{out}$. Which one of the following options correctly identifies the overflow condition?

  1. $ c_{out}\left ( \overline{a_{n-1}\oplus b_{n-1}} \right )$
  2. $ a_{n-1}b_{n-1}\overline{c_{n-1}}+\overline{a_{n-1}}\overline{b_{n-1}}c_{n-1}$
  3. $ c_{out}\oplus c_{n-1}$
  4. $ a_{n-1}\oplus b_{n-1}\oplus c_{n-1}$
edited by

6 Answers

Best answer
64 votes
64 votes

Number representation in 2's complement representation:

  • Positive numbers as they are
  • Negative numbers in $2's$ complement form.

So, the overflow conditions are

  1. When we add two positive numbers (sign bit $0$) and we get a sign bit $1$
  2. When we add two negative numbers (sign bit $1$) and we get sign bit $0$
  3. Overflow is relevant only for signed numbers and carry is used for unsigned numbers
  4. When the carryout bit and the carryin to the most significant bit differs

PS: When we add one positive and one negative number we won't get a carry. Also points $1$ and $2$ are leading to point $4$.

Now the question is a bit tricky. It is actually asking the condition of overflow of signed numbers when we use an adder which is meant to work for unsigned numbers.

So, if we see the options, B is the correct one here as the first part takes care of case 2 (negative numbers) and the second part takes care of case 1 (positive numbers) - point 4.  We can see counterexamples for other options:

A - Let $n=4$ and we do $0111 + 0111 = 1110$. This overflows as in $2's$ complement representation we can store only up to $7$. But the overflow condition in A returns false as $c_{out} = 0$.

$C$ - This works for the above example. But fails for   $1001 + 0001 = 1010$ where there is no actual overflow $(-7+1 = -6)$, but the given condition gives an overflow as $c_{out} =0$ and $c_{n-1} = 1$.

D - This works for both the above examples, but fails for $1111 + 1111 = 1110$ $(-1 + -1 = -2)$ where there is no actual overflow but the given condition says so.

Reference: http://www.mhhe.com/engcs/electrical/hamacher/5e/graphics/ch02_025-102.pdf

Thanks, @Dilpreet for the link and correction.

edited by
27 votes
27 votes
A'B'C+ABC'

Answer should be B. But I think there is a typo in B.

My answer:- A N-1B N-1CN-1’ +  A N-1’B N-1’CN-1

6 votes
6 votes

suppose i m taking two +ve no and two -ve no and we perform its addition in two's complement no 

+70   0 1 0 0 0 1 1 0
+80   0 1 0 1 0 0 0 0
add   1 0 0 1 0 1 1 0
  cout msb c(n-1)            

here no carry is transfered to cout but c(n-1) is transfered to msb 

-70   1 0 1 1 1 0 1 0
-80   1 0 1 1 0 0 0 0
add 1 0 1 1 0 1 0 1 0
  cout msb c(n-1)            

here carry is transfered to cout and no c(n-1) is trasfered to msb

therefore,cout' c(n-1)+cout c(n-1)' =cout XOR C(n-1)

and another notable point is that there is no condition for overflow for +ve nd -ve no and also for -ve and +ve no

edited by
Answer:

Related questions

91 votes
91 votes
7 answers
1
70 votes
70 votes
6 answers
2
Rucha Shelke asked Sep 22, 2014
14,919 views
Given two three bit numbers $a_{2}a_{1}a_{0}$ and $b_{2}b_{1}b_{0}$ and $c$ the carry in, the function that represents the carry generate function when these two numbers ...
34 votes
34 votes
2 answers
3
Rucha Shelke asked Sep 22, 2014
9,647 views
Consider the circuit above. Which one of the following options correctly represents $f\left(x,y,z\right)$$x\bar{z}+xy+\bar{y}z$$x\bar{z}+xy+\overline{yz}$$xz+xy+\overline...
70 votes
70 votes
5 answers
4
Rucha Shelke asked Sep 16, 2014
18,397 views
You are given a free running clock with a duty cycle of $50\%$ and a digital waveform $f$ which changes only at the negative edge of the clock. Which one of the following...