计算机采用二进制计数制,其数值形式称为机器数,机器数分为无符号数和带符号数。
带符号数,其最高位是符号位,0表示正号,1表示负号。
数据的表示:
考点!!
码制 | 定点整数范围 | 定点整数个数 | 定点小数范围 |
原码 | |||
反码 | |||
补码 | | ||
移码 |
- 原码:二进制表示,最高位是符号位,0表示正号,1表示负号。数值0有两种形式表示:[+0]=00000000 [-0]=10000000
- 反码:正数和原码相同,负数是取除符号位,其他位相反的原码。
- 补码:正数和原码相同,负数是除符号位,在反码后加1.约定:[-128] = 10000000
- 移码:在偏移量为的情况下,移码是补码的符号位取反。约定:[-128] = 00000000
码制 | 数值1 | 数值-1 | 1+(-1) |
原码 | 00000001 | 10000001 | 10000010 |
反码 | 00000001 | 11111110 | 11111111 |
补码 | 00000001 | 11111111 | 00000000 |
移码 | 10000001 | 01111111 | 00000000 |
浮点表示:
- 定点小数:小数点在最该有效数值位之前,在符号位之后。
- 定点整数:小数点在最低有效数值位之后。
如果用上诉的表示方式来表达,原码和反码只能表达个数,补码和移码只能表达个数,能表示的数据太少,所以引入浮点数。
浮点数:是小数点位置不固定的数,可表示更大范围的数。
浮点数的表示形式:
E:阶码(纯整数) F:尾数(带符号的纯小数)
阶符 | 阶码 | 数符 | 尾数 |
考点! 浮点数的阶码决定数值范围,尾数决定数值精度。
规格化浮点数是将尾数的绝对值限定在区间[0.5,1]
校验码:
码距:一个编码系统中任意两个合法编码之间至少有多少个二进制位不同。
- 奇偶效验码:水平奇偶校验码,垂直奇偶校验码,水平垂直校验码。
- 海明码:考点!设数据为是n位,校验位是k位,则n和k必须满足关系:
- 循环冗余校验码:利用生成多项式为 k 个数据位产生 r 个校验位来进行编码,其编码长度为 k+r.