📜  1的补码表示法和2的补码表示法之间的区别

📅  最后修改于: 2021-06-28 16:14:55             🧑  作者: Mango

先决条件–负二进制数的表示

二进制数的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’的补码和2’的补码之间的主要区别在于1’的补码具有两种表示形式:0(零)– 00000000,其为正零(+0)和11111111,其为负零(-0);而在2的补码中,零只有一种表示形式– 00000000(+0),因为如果将1添加到11111111(-1),我们将得到00000000(+0),它与正零相同。这就是为什么通常使用2’s补码的原因。

另一个区别是,在使用1’的补码相加数字时,我们首先进行二进制加法,然后相加一个末端进位的进位值。但是,2的补码只有一个值为零的值,并且不需要进位值。