计算机组成原理复试2 | 您所在的位置:网站首页 › 101001001转化为十进制 › 计算机组成原理复试2 |
循环冗余校验码
1、基本思想
循环冗余校验码的思想: 数据发送、接受方约定一个“除数”,K个信息位+R个校验位作为“被除数”,添加校验位后需保证二进制除法的余数为O。 收到数据后,进行除法检查余数是否为0。若余数非0说明出错,则进行重传或纠错 设生成多项式为G(x)=x的3次方+x+的2次方+1,信息码为101001,求对应的CRC码。(讲解在3:15) 过程: (1)通过生成多项式得到除数。 生成多项式可以写为1x的3次方+1x的2次方++0x的1次方1x的0次方,系数对应二进制数为1101 (2)检验位R=给定的生成多项式的最高次幂 k=信息码的长度=6,R=生成多项式的最高次幂=3,所以校验码位数=6+3=9 (3)确定校验位 信息码左移R位,低位补0。对移位后的信息码,用生成多项式进行模2除法,产生余数。 即101001000 模2除 1101 (4)检错和纠错 发送: 101001001 记为C9C8C7C6C5C4C3C2C1 接收: 101001001 用1101进行模2除,余数为000,代表没有出错. 接收:101001011 用1101进行模2除,余数为010,代表C2出错(这句话的对错需要具体情况分析,由下表得可能是2,也可能是9) 只要我们确定了一个生成多项式,无论信息位怎么变化,最终余数的值和出错位对应是固定不变的。 此时,如果能满足2的R次方大于等于K+R+1,则CRC码可纠正一位错。 定点数:小数点的位置固定 1、分类无符号数:整个机器字长的全部二进制位均为数值位,没有符号位,相当于数的绝对值。
在原码基础上得到: 若符号位为0,则反码与原码相同 若符号位为1,则数值位全部取反 表示范围同原码 反码其实只是原码转变为补码的一个中间状态 原码转变为反码,反码转变为补码。 正数的补码=原码 负数的补码=反码末位+1(要考虑进位) 补码的基础上将符号位取反。 注意:移码只能用于表示整数 通过改变各个数码位和小数点的相对位置,从而改变各数码位的位权。可用移位运算实现乘法、除法 (1)原码的算数移位:符号位保持不变,仅对数值位进行移位。
(2)反码的算数移位 反码的算数移位一正数的反码与原码相同,因此对正数反码的移位运算也和原码相同。 右移:高位补0,低位舍弃。 左移:低位补0,高位舍弃。 反码的算数移位――负教的反码数值位与原码相反,因此负数反码的移位运算规则如下, 右移:高位补1,低位舍弃。 左移:低位补1,高位舍弃。 逻辑右移:高位补0,低位舍弃。 逻辑左移:低位补0,高位舍弃。 可以把逻辑移位看作是对“无符号数”的算数移位
(1)原码的加法运算: 正+正→绝对值做加法,结果为正 负+负→绝对值做加法,结果为负 (这两个可能会溢出) 正+负→绝对值大的减绝对值小的,符号同绝对值大的数 负+正→绝对值大的减绝对值小的,符号同绝对值大的数 (2)原码的减法运算,“减数”符号取反,转变为加法: 正-负→正+正 负-正→负+负 正-正→正+负 负-负→负+正 4.2.2补码的加减运算对于补码来说,无论加法还是减法,最后都会转变成加法,由加法器实现运算,符号位也参与运算
只有“正数+正数”才会上溢―正+正=负 只有“负数+负数”才会下溢―负+负=正 (1)方法一:采用一位符号位 设A的符号为As,B的符号为Bs,运算结果的符号为Ss,则溢出逻辑表达式为:
定点整数的符号扩展: 在原符号位和数值位中间添加新位,正数都添0;负数原码添0,负数反、补码添1 |
CopyRight 2018-2019 实验室设备网 版权所有 |