我们知道写出补码的一般方法是
1. 将一个数化为2进制
2. 除了符号位按位取反得到反码
3. 反码基础上+1
但是在8位情况下-128的补码却是1000 0000
用上述方法得不到正确的解,
先给出一个更通用的解
[X]=0+X
其中0的个数由所求位数决定
例如:在8位字长下求-128的补码
就是[128]=80+(128)=80128

一个小诀窍.快速写出一个数的补码.
1000 0000 就是-128对应的补码
128=0+128=128
可以验证 正数的补码用此公式就是其本身
进一步可以得出一个公式
[X]=2nX,X<0
[X]=X,X>=0
n为字长
例如 在字长为8的情况下
[1]=281=255
即 1111 1111

相关文章: