有符号二进制数10000000作为补码,求原码

按照减一再取反,10000000减去00000001后结果是什么呢?因为最高位是符号位1,能参与减法运算吗?结果是01111111(正数)吗,再取反,不就是10000000,这个不是表示-0吗,-128用有符号原码怎么表示呢?+128呢?

10000000-00000001=10000000+11111111=011111111 ,结果为01111111,而且有进位,表示有溢出,最高为必须参与运算,因为机器是不知道是否原码还是补码,这也就是把减法变成加法的方法。128已经超出一个字节的有符号整数的表示范围了,-128为10000000,正数只能到127。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-09-15

有符号二进制数 1000 0000 作为补码,求原码

这是一个无解的难题。

按照“取反加一”的说法,每个补码,都有一个对应的原码。

但是,就有这样一种情况:

 -128 具有八位的补码,却没有原码和反码。

取反加一吧! 

拿什么取反加一?

鼓吹“取反加一”的小伙伴,是不是有些尴尬呀?

-----------------------

其实,补码的来源,和原码反码符号位,是毫无关系的。

计算机所使用的补码,是由“数值”推导出来的。

补码,有自己定义式。如下:

 当 X >= 0,  [ X ]补 = X;     零和正数不用变换。

 当 X < 0,  [ X ]补 = X + 2^n。 n 是补码的位数。

这公式,是通用的。 你去翻翻书,应该可以找到。

---------------------

那么,[-128]补 = -128 + 2^8 = 1000 0000 (二进制)。

所以,补码 1000 0000,它代表的数值,就是-128。

而-128 的八位原码和反码,就别想了。

第2个回答  2011-07-01
符号位不取反吧追问

对啊,那不就变正数了吗

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网