1.数据表示与校验码
一、数据表示
1、机器数、符号位、真值
各种数据在计算机中的表现形式称为机器数
带符号的机器数的最高位存放符号 正数为0 负数为1。
将带符号位的机器数对应的真正数值称为机器数的真值。
真值+1001,对应的机器数为01001;真值-1001,对应的机器数为11001。
1.原码,反码,补码和移码
1)原码
在原码表示中,机器数最高位用0表示正数,1表示负数。
[+0]=00000000 [-0]=10000000
原码上,正数与正数,负数与负数的加减无影响,但是正数与负数的加减会出现问题,所以引进了补码。
2+2=00000010+00000010=00000100=4
2 + (-3) = 00000010 + 10000011 = 100000101 = -5
2 + (-2) = 00000010 + 10000010 = 10000100 = -4
2)反码
在反码表示中,机器数最高位用0表示正数,1表示负数。当最高位为0时,其余几位即为此数的二进制;当最高位为1时,其余几位需按位取反。
[+0]=00000000 [-0]=11111111
3)补码
在反码表示中,机器数最高位用0表示正数,1表示负数。当最高位为0时,其余几位即为此数的二进制;当最高位为1时,其余几位需按位取反,且最低位加1。
[+0]=00000000 == [-0]=00000000
4)移码
不管正负数,只要将其补码的符号位取反即可
2、定点数和浮点数
1)定点数
约定小数点的位置固定不变,通常将数据表示为纯小数或纯整数。
纯小数: 整数部分是零的小数(小于1的正小数)。如0.1,0.66,0.987
纯整数: 正整数。如1,32,99
2)浮点数
M尾数部分给出有效数字的位数,因而决定了浮点数的表示精度。
E指数(阶码)阶码指明了小数点在数据中的位置
R基数
浮点数表示:
N = 尾数 * 基数 ^ 指数(阶码)