第三节 计算机中数据表示
一、原码、反码和补码
1.描述:用二进制数“0”(+)或“1”(-)来表示,且符号位在数值位之前的二进制数。
2.真值:用“+”和“-”表示正负的数。
3.原码:符号位用0表示整数,用1表示负数,数值部分用二进制数表示的方法。
4.反码:正数的反码为原码本身,负数的反码为原码符号位不变,其他位取反得到。
5.补码:正数的补码为原码本身,负数的补码为反码加1得到。
【X】补=模+X;整数部分:【X】补=2n+X;小数部分:【X】补=2+X。
6.特殊机器数比较
数值 | 原码 | 反码 | 补码 |
---|---|---|---|
+0 | 00000000 | 00000000 | 00000000 |
-0 | 10000000 | 11111111 | 00000000 |
+127 | 01111111 | 01111111 | 01111111 |
-127 | 11111111 | 10000000 | 10000001 |
-128 | —— | —— | 10000000 |
127/128 | 0.1111111 | 0.1111111 | 0.1111111 |
-127/128 | 1.1111111 | 1.0000000 | 1.000001 |
-2 | —— | —— | 1.000000 |
表示范围 | -127 ~ +127 | -127 ~ +127 | -128 ~ +127 |
小结 | 对于负数:【X】原符号位为1,其余各位等于真值绝对值。 | ①对于负数:符号位不变,其余各位真值取反。 ②反码可作为求补码的中间手段。 | ①对于负数:【X】补=2n+X;符号位不变,其余各位取反后,加一。 ②负数的补码再求补码,可得其原码。 |
综上所述:
①无论原码、反码或补码,负数的符号位用1表示,正数的符号位用0表示。
②正数的原码、反码和补码相同。
③对于负数:利用原码的符号位不变,其后各位分别求反,可得到反码,在反码最后一位加一,可得到补码。但不适用于字长范围内最小负数。
二、定点数与浮点数
1.定点数
定义:小数点在数中的位置是固定不变的数。
分类:定点小数、定点整数。
缺点:只能表示纯小数或整数。
2.浮点数
定义:小数点在数中的位置是不断变化的数。
格式:
说明:尾数范围:0.5≤|S|<1。
判断规格化方法:符号位与第一个数值位是否相异(-0.5除外)。
3.定点表示与浮点表示比较
①在相同字节下,浮点数表示范围比定点数表示的范围大。
②定点数所能表示的有效数字比浮点数多。
③浮点数运算规则比定点数复杂。
④浮点数表示所需要的设备量比定点数表示所用设备量多。
⑤在微机内部,一般采用定点表示法。