原码与补码的转换

发布日期:2019-10-04 15:16   来源:未知   阅读:

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  1、首先要知道,换算规则:原码转换为反码:符号位不变,数值位分别“按位取反” 。

  2、接着反码转换为原码也是一样,九龙心水经过紧张角逐,,但规则却有不同之处:符号位不变,数值位分别“按位取反”。

  3、然后就是,原码转换为补码的规则:符号位不变,数值位按位取反,末位再加1。

  4、最后补码转换为原码:符号位不变,数值位按位取反,末位再加1,即补码的补码等于原码。

  5、而求补(变补)的换算规则与之前有所差别:符号位和数值位都取反,末位再加1。

  2、如果是11111变回原码呢?我们可以采取逆过程先减1,11111-1=11110,再取反变为10001;

  3、如果要是在补码变原码时先去反再加一呢?(就是问题中的说法)结果为11111先取反为10000,再加1,10000+1=10001。这个结果与2是一样的,并且也是和1中的原码相吻合。香港九龙六合网生态环境部要求,

  通过上述例子可以看出,无论是原码变补码还是补码变原码,都可以采取先取反再加1的方法。至于原因是很容易想通的。

  按照正常思维来想的话,补码变成原码应该是原码变补码的逆过程,也就是2步中的方法。但是我们可以思考一下,如果我们没有按照2步中的方法而是先去取反了呢?先取反得到的结果和2步的结果有什么差异呢?答案是差了1,2步中是先减1才取的反,而直接取反的线。

  接着请注意,在取反前减1和在取反后加1的效果是一样的。这就和-3-1=-(3+1)是一个道理。

  也就是说负数原码最后一位为1,则前面除符号位都要取反;最后一位为0,则倒数两位跟符号位不变,其余取反