1的补码二进制数的“0”是通过切换其中的所有位获得的另一个二进制数, 即将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的补码只有一个零值, 并且不需要进位值。
如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请发表评论。
评论前必须登录!
注册