如何计算正负数的一个补码?

时间:2012-06-02 09:52:37

标签: complement ones-complement

如果我使用一个补码来表示数字,我应该得到什么结果? 例如,数字01110(正数),其一个补码应为01110或10001?
如果数字是10001(负数),那么一个补码值是01110?

3 个答案:

答案 0 :(得分:2)

在你的情况下,它将是10001.一个补码意味着反转数字中的所有位。

这也意味着它将正数转为负数,反之亦然。另请注意,这会产生一些奇怪的行为,例如零补码不为零,但负零:00000变为11111.这使得1的补码算术有点棘手,这也是今天计算机使用2的补码的原因之一否定。

答案 1 :(得分:0)

这是完全错误的补码,2的补码和有符号的幅度对于正数都是相同的。对于负数,取二进制数作为负数的绝对值(正数),并将其反转得到一个补码,它将不同于二进制补码和有符号数。

答案 2 :(得分:0)

对于正数,一个补码,两个补码和有符号幅度都是相同的。对于负数,将二进制值作为绝对值(正数),然后将其反转以得到一个补码。在1的补码中添加一个以获得2的补码......并在原始的最左边添加1个额外的位以获得符号量级....