Math 负数的1s和2s补码

Math 负数的1s和2s补码,math,binary,numbers,complement,Math,Binary,Numbers,Complement,我找到的关于如何找到1(翻转正二进制位)和2(翻转正二进制位并加1)补码的所有答案似乎都没有回答我的问题 我的家庭作业要求找出负数的补码。。因此,我不是从一个正数开始,需要找出它的负数是什么,而是给我一个负数,让我找到它的补码 一个愚蠢的想法是,我找到正数二进制值,然后翻转位得到负数,然后再翻转它找到负数的1s补码???不管你的起始数是正数还是负数-在2的补码系统中,-x与~x+1相同。如果原始数字为正,则结果为负;如果原始数字为负,则结果为正。8位示例-二进制表示2的补码二进制: x (dec

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

我的家庭作业要求找出负数的补码。。因此,我不是从一个正数开始,需要找出它的负数是什么,而是给我一个负数,让我找到它的补码


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

不管你的起始数是正数还是负数-在2的补码系统中,
-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(二进制)
列和
~x+1(二进制)
列是相同的


如果你需要得到一个数字的1的补码,那就是
~x

不管你的起始数是正数还是负数,在2的补码系统中,
-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(二进制)
列和
~x+1(二进制)
列是相同的


如果你需要得到一个数字的1的补码,那就是
~x

事实上如果不是这样的话,那么按照你想要的x=--x格式对数字建模是不切实际的。事实上如果不是这样的话,按照你想要的x=--x格式对数字建模是不切实际的首先需要指定负数的表示方式。首先需要指定负数的表示方式。