问题
I need help subtracting with binary using 2's representation and using 5 bits for each number:
1) -9 -7 = ? Is there overflow?
-9 = 01001 (2's complement = 10111) and -7 = 00111 (2's complement = 11001)
Now we need to add because we're using 2's complement
10111 +11001 = 100000 But this answer doesn't make sense. Also, I'm assuming there's overflow because there are more than 5 bits in the answer.
2) 6 - 10, same process as before. Negative binary numbers don't make sense to me
回答1:
1) -9 - 7
-9 - 7 = -9 + -7
9 (binary) = 01001
-9 (2's complement) = 10111
7 (binary) = 00111
-7 (2's complement) = 11001
10111 +
11001 =
110000
This doesn't fit into 5 bits. Removing the overflow we get 10000, which is -16 (binary).
2) 6 - 10
6 - 10 = 6 + -10
6 (binary) = 00110
10 (binary) = 01010
-10 (2's complement) = 10110
00110 +
10110 =
11100
This fits into 5 bits and is -4 (binary).
回答2:
10111 + 11001 is not 100000 but 110000.
1111
10111
+ 11001
-----
110000
回答3:
Answer to the 1st question is wrong. To find -9-7 using two's complement, we need follow these steps:
STEP:1 Convertion of first number 1st the binary conversion of 9: 01001 2nd find the complement of binary: 10110 Add 1 to the binary complement: 10110 +1 ----- 10111 STEP 2: Convertion of second number 1st the binary conversion of 7: 00111 2nd find the complement of binary: 11000 Add 1 to the binary complement: 11000 +1 ------- 11001 STEP 3: Adding Now add the two outputs -9 + (-7): 10111 +11001 -------- 110000 The most important thing is checking the answer whether it is correct or not. you may use index for the binary digits: 7 6 5 4 3 2 1 0 1 1 0 0 0 0 find the 2 raised to the power of each index having 1 digit. (-)2^5 + 2^4
*Note (-) is used because in two's complement, the most significant bit (the bit with the highest index) is a sign bit -2^5 + 2^4 = -32 + 16 = -16 which is the correct answer for -9-7=-16. For this reason 2's complement become a popular way of representing negative number. For sign magnitude we need to assume a sign bit, which is hard to implement in a computer, and for 1's complement we need to add 1 to find the correct answer.
来源:https://stackoverflow.com/questions/14429784/binary-subtraction-with-2s-complement