求八位数的反码、补码能表示的带符号最小数。

各位好,
我正在学习二进制数在计算机中的信息表示。对于负数的反码和补码能表示的最小范围一直很晕。书上说,八位反码的表示范围是+127到-127,八位补码的表示范围是+127到-128。为什么?
最大的正数反码和补码我都明白。但负数的最小反码和最小补码是怎么算的我就是不理解。请给一个具体的计算实例。越具体越好!
我总是纠结在于先写出八位数能表示的负数最小原码(如1 111 1111),然后把这些换为相应的反码和补码,根据反码和补码再推出他们的真值。我知道不对,请指出我的错误点在哪里。

非常感谢!

【俊狼猎英】团队为您解答~
其实是因为二进制有一个符号位,因此有
+0:00000000
-0:10000000
两种表示,先多约定用-0表示-128
至于反码和补码能表示的范围就不清楚是怎么解释的了
记得看到过计算机运算都是用补码的形式,然后还原为原码输出结果追问

非常感谢您的解答!

-0是1000 0000,它的反码是1111 1111 ,补码就是1000 0000 ,有一位进位应该是溢出了。
另外,我算这个补码的真值是怎么算? 是不是再对其求补?为什么会认为是-128呢。楼上的学长用模减的,得-128。但是如果不用模算,应该计算怎么算呢?感谢!!

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-12-01
计算机中的八位二进制代码,范围是 0~255,以补码形式,可代表真值:-128~+127。

八位的补码,在 0~127 范围内,即小于 128 时,直接代表零和正数。
该补码对应的数字,就是该数的真值。

八位的补码,在 128~255 范围内,即大于 127 时,就代表负数 -128~-1 了。
用这个补码,加上-256,即可得出真值。

如补码 1000 0001,即 129,加上-256,即可得出真值为-127。

如补码 1000 0000,即 128,加上-256,即可得出真值为-128。

如补码 1111 1111,即 255,加上-256,即可得出真值为-1。
-----------------
如果是负数,求补码,加上 256 即可。

如,真值是 -1,补码就是 256 - 1 = 255,这就是 -1 的补码。

因为补码的定义式,并不限制什么进制。

所以,做这些变换,根本就不用二进制,也不用《求反加一》这些麻烦事。本回答被提问者和网友采纳
相似回答