2的补充号是什么?
为什么我们采用1的补语并加1?为什么我们在服用1次补语后不减1?
为什么计算机使用2的补语?
答案 0 :(得分:6)
2的补充数是多少?
互补数字系统用于表示负数。所以, 2的补码数系统用于表示负数。
<强>更新强>
Q: What “2’s Complement System” says?
A: The negative equivalent of binary number is its 2’s complement. (1’s Complement +
1)
注意:需要1个额外位来表示数字的符号。 MSB(最高有效位)用作符号位。如果MSB为0,则该数字为正数。如果MSB为1,则该数字为负数。
1’s Complement Value 2’s Complement
011 +3 011
010 +2 010
001 +1 001
000 +0 000
111 -0 000
110 -1 111
101 -2 110
100 -3 101
-4 100
How '100' (3 bits) is -4?
MSB用作符号,如果为1,则为负,如果为0则为正。
-1 * 2^2 + 0*2^1 + 0*2^0 = -4 + 0 + 0 = -4
类似地,101(3位)是-3
-1 * 2^2 + 0*2^1 + 1*2^0 = -4 + 0 + 1 = -3
观察:
• In 1’s complement, using 3 bits, we represented 2^3 = 8 numbers i.e from -3 to +3.
• In 1’s complement, -0 and +0 are having 2 representation. (+0 is ‘000’ and -0 is ‘111’).
But mathematically +0 and -0 are same.
• In 2’s complement, using 3 bits, we represented only 2^3 = 8 numbers i.e from -4 to +3.
• In 2’s complement, -0 and +0 are having same representation.
• Since +0 and -0 in 2’s complement is having same representation,
we are left out with one more combination which is ‘100’ = -4.
为什么我们采用1的补语并加1?为什么我们在服用1次补体后不减1?
请参阅以下链接中的“为什么反转并添加一个作品”主题。如果 我开始解释,这篇文章会变得很大。 http://www.cs.cornell.edu/~tomf/notes/cps104/twoscomp.html
为什么计算机使用2'补充?
答案 1 :(得分:0)
来自维基百科Two's Complement:
二进制补码系统的优点是加法,减法和乘法的基本算术运算与无符号二进制数的基本算术运算相同(只要输入以相同的位数表示,并且任何溢出超出那些从结果中丢弃比特)。该属性使系统更易于实现,并且能够轻松处理更高精度的算术。此外,零只有一个表示,避免了与负零相关的微妙之处,这种微小的存在于一个补充系统中。
答案 2 :(得分:0)
我们使用二进制补码而不是一对补码的原因是为了使算术尽可能简单。
考虑到在一个补码中,1111 1111
和0000 0000
是相同的数字 - 通过减去一个,我们最终得到了相同的数字。这是一个太大的痛苦需要考虑 - 所以我们使用两个补码,其中1111 1111
是-1 - 通过减去一个,我们成功地减去一个。万岁!
(第二个优势是我们可以在两个补码中代表一个唯一的数字,而不是在一个补码中 - 在两个补码-128到+127而不是一个补码-127到+127。)