【问题标题】:1s and 2s complement of a negative number负数的 1s 和 2s 补码
【发布时间】:2013-09-04 22:47:31
【问题描述】:

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

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

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

【问题讨论】:

  • 您首先需要指定负数的表示方式。

标签: math binary numbers complement


【解决方案1】:

您的起始数字是正数还是负数都没有关系 - 在二进制补码系统中,-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) 列是相同的。

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

【讨论】:

  • 确实,如果不是这种情况,那么按照您的需要使用这些格式的型号是不切实际的 x == -(-x)
猜你喜欢
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-11
  • 1970-01-01
  • 1970-01-01
  • 2011-08-02
相关资源
最近更新 更多