📜  1的补码表示和2的补码表示技术的区别

📅  最后修改于: 2021-09-13 03:16:49             🧑  作者: 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’s补码和2’s补码的主要区别在于1’s补码有0(零)-00000000,即正零(+0)和11111111,即负零(-0)两种表示;而在 2 的补码中,零只有一种表示 – 00000000 (+0),因为如果我们将 1 加到 11111111 (-1),我们得到 00000000 (+0),这与正零相同。这就是为什么通常使用 2’s 补码的原因。

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