计算机组成原理(三)
奇偶校验码:
校验原理:
2个比特位可以映射出4种合法的情况 2的2次方
3个比特位可以映射出8种不同的情况,其中4种为合法情况,另外4种为非法情况
上图的每个编码都是一个码字
在同一组码字内,两个不同的码字的最小距离叫做码距(d)
d=1,无检错能力,d=2,有检错能力
d>=3,设计合理的情况下,可能有检错、纠错能力
比如:100的d=2,当他出错时变为101,只变化1位它检验的出来
奇偶校验:
校验码分为有效信息位和校验位。
奇校验码:这个校验码“1”的个数为奇数
偶校验码:整个校验码“1”的个数为偶数
偶校验码的硬件实现:个信息进行异或(摸2加)运算,得到的结果即为偶校验位:
异或:相同为0,相异为1
海明校验码:
海明码设计思路:将信息位分组进行偶校验,然后多个校验位来确定出错的位置
循环冗余校验码(CRC):
CRC的基本思想:
1.确定K、R以及生成多项式对应的二进制码
K为信息码的长度,R为生成多项式的最高次幂,校验码位数N=K+R
2.移位
信息码左移R位,低位补0
3.相除
对移位后的信息码,用生成多项式进行摸2除法,产生余数
4.纠错和检错
浮点数的表示和运算:
定点数和浮点数:
定点数:小数点的位置固定,eg:996.007
浮点数:小数点的位置不固定,eg:9.96007*10的2次方
定点数的表示:
定点数分为无符号数和有符号数
无符号数就是每一位都是数值位,没有符号位
n位的无符号数的表示范围为:0~2的n次方-1
原码:
分为定点整数部分和定点小数部分
如果机械字长n+1位,原码整数的表示范围:
如果机械字长n+1位,原码小数的表示范围:
反码:
如果为正数,原反补都是相同的
如果为负数,反码为除了符号位以外每一位原码取反
例:x=19,
[x]原=0,0010011,[x]反=0,0010011
例,x=-19
[x]原=1,0010011,[x]反=1,1101100
定点小数也是如此:
反码的定点小数和定点分数的范围和原码的范围相同
补码:
正数的补码为跟原码反码相同
负数的补码为反码+1
例:x=19,
[x]原=0,0010011,[x]反=0,0010011
[x]补=0,0010011
例,x=-19
[x]原=1,0010011,[x]反=1,1101100
[x]补=1,1101101
定点整数和定点小数的补码范围跟原码反码的范围不同
定点整数最小值要加上了一个2的-n次方,定点小数的最小值要减一个2的-n次方
0的原码和反码都有两种,但是0的补码只有一种形式
移码:
移码等于补码+1
补码表示的整数跟真值的变化趋势相同,因此可以用补码来判断大小关系