8 位的机器数代表补码时,对应的真值范围是-128~127。
--正确。
1000 0000 这个代表-128的补码。
--欠妥。应该说:
1000 0000 这“是”-128 的补码。
-------------
用 8 位的原码和反码,来代表数值,最小值都是-127。
而用补码来表示数值,最小值,就是-128。
补码,比原码和反码,能多表示一个数值。
这是因为:原码和反码的定义,就是不合理的。
一个零,它们都编造了两个代码。
所以,计算机中,根本就不用它们。
那么,你从原码反码代表的最小值,是不能导出补码最小值的。
“原码反码取反加一符号位不变”,在这里是不好用的。
你必须用“补码的定义式”来求证,你才能理解:
【 1000 0000 这“就是” -128的补码。】
没有问题,可以通过补码定义式推出这个结论。
一般对于字长为N为的补码数,其最小值二进制代码形式为:1000000...000,长度共N位
真值大小为:-2^(n-1)
n=8带入上式,得最小值=-2^7=-128
嗯,你是不是觉得转化为真值时有问题,感觉少一位,计算机运算就是补码,不用转化。
不懂