第1个回答 推荐于2016-12-01
正数的原码反码补码就是它自己,不在讨论之列。
8位2进制,
有符号数 原码范围是:
(1) 0<=X < 2^(n-1)
(2) -2^(n-1) < X <=0
这里 n=8
原码范围 0~127, -127~0
所以,8位2进制,不能表示 -128的原码。
------
补码
负数x的补码,其二进制表示等同于 无符号整数 2^n + x,其中n是这种类型的位数。
现在 n=8, x= -128, 它的补码 是 无符号整数 2^8 + (-128) = 128
写成 16进制是 0x80, 写成 2进制是 1000 0000
-------
平时的 不考虑符号位 的原码的反码加1等于补码的算法 只是计算技巧,用于-128 则有点牵强俯会,同 -0 混淆。本回答被提问者和网友采纳