1. 原码
1.1 原码的介绍
十进制数据的二进制表现形式,最左边是符号位,0为正,1为负
1.2 原码的表示
- 正数的原码反码补码是其本身。 如 7的原码:0000 0111
- 负数的原码符号位为1,数值位为其绝对值。 如 -7的原码:1000 0111
若 X = +1110, 则[X]原 = 0,1110 用逗号隔开 符号位和数值位
若 X = -1110, 则[X]原 = 1,1110 用逗号隔开 符号位和数值位
1.3 原码的范围
注:1Byte (字节) = 8 bit (位)
所以使用原码表示一个字节的范围是(1111 1111 ~ 0111 1111),即(-127~127)
1.4 原码计算的弊端
利用原码进行计算的时候,如果是正数完全没有问题;但是如果是负数计算,结果就出错,实际运算的方向跟正确的运算方向是相反的。
2 反码
2.1 反码出现的目的
为了解决原码不能计算负数的问题。
2.2 反码的表示
正数的原码反码补码是其本身,负数的反码是在原码的基础上,符号位不变。数值位取反,0变1,1变0。有 +0 -0 之分
2.3 常见负数的反码
2.4 反码的弊端
负数运算的时候,如果结果不跨0,是没有任何问题的,但是如果结果跨O,跟实际结果会有1的偏差。
3 补码
计算机中的存储和计算都是以补码的形式进行的。
3.1 补码出现的目的
为了解决负数计算时跨0的问题而出现的。
3.2 补码的表示
正数的原码反码补码是其本身,负数的补码在反码的基础上+1。
另外补码还能多记录一个特殊的值-128,该数据在1个字节下,没有原码和反码。