当码长是八位时,
补码为 1000 0000,其代表的数值是:-128。
-----------------------
求补码,通常是说:先求原码,再“取反加一”。
但是,八位的原码,只能表示:-127 ~ +127。
其实,从这里一开始,就是错误的。
因为,天下只有一个零,原码中,却编造了两个码!(+0-0)
那么,用“”求-0 和-128 的补码,这就很尴尬了。
求-0 的补码,可求得:0000 0000。
符号位是 0 ? -0 是正数吗?
求-128 的补码,更是无处下嘴。
-----------------------
其实,求补码,并不需要“取反加一”。
书上,也是有计算公式的:
X >= 0, [ X ]补 = X; 零和正数不用变换。
X < 0, [ X ]补 = X + 2^n。 n 是补码的位数。
那么,[-128]补 = -128 + 2^8 = 1000 0000。
所以,八位的补码 1000 0000,就是代表-128。
---------------------
按照公式求补码,是极为简便的,而且还能理解补码的意义。
那么,就不要学“原码反码取反加一符号位不变”了。
只有那些数学不好的老外,才需要弄这些“隔路”的花样。
如果它是8位补码的话,
它所代表的十进制数的值是-128。