1和2是负数的补码

时间:2013-09-01 20:53:24

标签: math binary numbers complement

我似乎找到的关于如何找到1s(翻转正数位)和2s(翻转正二进制位和加1位补码)的所有答案似乎都没有回答我的问题。

我的家庭作业要求找到负数的补码。所以不是从积极开始,而是需要找出其阴性是什么,我给了一个负数并要求找到它的补码。 / p>

一个愚蠢的想法是,我是否找到正值二进制值,然后翻转位以得到我的负数,然后再翻转它以找到负数的1s补码?

1 个答案:

答案 0 :(得分:4)

如果您的起始编号是正数还是负数,则无关紧要 - 在二进制补码系统中,-x~x + 1相同。如果原始数字为正数,则结果为负数,如果原始数字为负数,则结果为正数。 8位示例 - 二进制表示2的补码二进制:

x (decimal) | -x (decimal) | x (binary) | -x (binary) | ~x (binary) | ~x+1 (binary)
------------+--------------+------------+-------------+-------------+---------------
     5      |      -5      |  0000 0101 |  1111 1011  |  1111 1010  |  1111 1011
    -5      |       5      |  1111 1011 |  0000 0101  |  0000 0100  |  0000 0101
   110      |    -110      |  0110 1110 |  1001 0010  |  1001 0001  |  1001 0010
   -38      |      38      |  1101 1010 |  0010 0110  |  0010 0101  |  0010 0110

请注意-x (binary)列和~x+1 (binary)列相同。

如果您需要获得1的数字补码,那只是~x