Note: Just tell me if my reasoning or logic is wrong.
So I have two numbers 01001 and 1110. And the question asks to subtract them as both signed and unsigned system.
Unsigned System
For this I can use, subtraction via addition (2's compliment system).
Question: 01001 - 1110
1110 -> 01110 // Sign extension
01110 -> 10001 // Inverting Bits
10001 + 1 -> 10010 // Adding one
Now,
01001
10010
+ -----
11011
From my book it says, "No final carry in step 2 indicates a final borrow, or a greater “2nd number” than the “1st number”, hence an impossible subtraction." So I concluded Overflow generated and borrow occurred as the second number is greater than first number.
Signed System
Question: 01001 - 1110
1110 -> 11110 // Sign extension
Now,
Carry:1 1 000
0 1001
1 1110
+ -------
0 0111
The book says, "In 2’s complement subtraction modeled by Equation (7), and also in 2’s complement addition, overflow occurs if and only if the carry bit arriving at the sign column is different from the carry bit leaving this column." Hence, No overflow and borrow occurred.
Is there anything I left or didn't consider? For some reason I feel like I messed up signed part even though the result makes sense. 9 -2 = 7
Lets say the question is 01001 - 1110
Now we have two options. Calculate is using Unsigned System and then do it using signed system.
Unsigned System
01001 is five bits while 1110 is four bytes.
The first step is to sign extend and make sure they both are of equal length. For unsigned, we sign extend by adding "0s" on left most side. Hence,
Now the subtraction. In term of decimal the question looks like this: 9-14. Which is -5
"No final carry in step 2 indicates a final borrow, or a greater “2nd number” than the “1st number”, hence an impossible subtraction." In unsigned, -5 can't be represented anyways. Hence Overflow occured.
Signed System
For signed System the procedure is more or less the same. The major difference would be the sign extension.
For signed numbers, to do signed extension, we just repeat whatever the MSB is. For 1110, MSB is 1 Hence,
Now the subtraction. In term of decimal the question looks like this: 9-(-2). Which is 11.
Since the carry bit arriving arriving at the sign column is same from the carry bit leaving this column. We have no overflow.