先决条件 – 负二进制数的表示
一个二进制数的1的补码是另一个二进制数,它是通过翻转其中的所有位而获得的,即将0位转换为1,将1位转换为0。
例子:
Let numbers be stored using 4 bits
1's complement of 7 (0111) is 8 (1000)
1's complement of 12 (1100) is 3 (0011)
二进制数的 2 的补码是在二进制数的 1 的补码上加 1。
例子:
Let numbers be stored using 4 bits
2's complement of 7 (0111) is 9 (1001)
2's complement of 12 (1100) is 4 (0100)
这些表示用于有符号数。
1’s补码和2’s补码的主要区别在于1’s补码有0(零)-00000000,即正零(+0)和11111111,即负零(-0)两种表示;而在 2 的补码中,零只有一种表示 – 00000000 (+0),因为如果我们将 1 加到 11111111 (-1),我们得到 00000000 (+0),这与正零相同。这就是为什么通常使用 2’s 补码的原因。
另一个区别是,在使用 1 的补码相加数字时,我们首先进行二进制加法,然后添加一个循环结束的进位值。但是,2′ 的补码只有一个为零的值,并且不需要进位值。