原码反码和补码
原码 | 反码 | 补码 | |
---|---|---|---|
定义 | 人类用来表示有符号数 数值的二进制形式 | 把符号位参与运算,解决原码做减法 的问题(化-为+) | 计算机系统中有符号数 数值的二进制表示方式,解决反码有正负两个0 的问题 |
表示方式 | 最高位为符号位(正数为0,负数为-1),其余位为绝对值 | 正数的反码与其原码相同;负数的反码是其原码逐位取反,但符号位除外 | 正数的补码与其原码相同;负数的补码是其原码逐位取反再+1,但符号位除外,或者对应的正数每位取反再+1,包括符号位 |
表示范围(8bit为例) | -127 ~ +127 ,0有+0和-0两种表示方式 | -127 ~ +127 ,0有+0和-0两种表示方式 | -128 ~ +127 , 0只有一种表示方式 |
- 补码注意事项:
- -128 对应 1 0000000 即原码中的-0(也可以看做是-128,最高位溢出,只剩下负号和零)
- 求补操作:求反+1,包括符号位,不分正数、负数
常见问题
原码、反码、补码出现的原因,计算上的应用
http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html