【计算机组成原理】CRC码

CRC码(Syclic redundancy check)

基本思想

发送和接收方约定一个除数。

K个信息位+R个校验位作为被除数。保证除法没有余数。

若余数非0说明出错,则进行重传或纠错。

如何构造

1、确定K,R以及生成多项式对应的二进制

设生成多项式为:X3+X2+1,信息码为101001,求对应的CRC码。

信息位长度K=信息码长度=6,R生成多项式的最高次幂=3。校验码长度等于=6+3=9

生成多项式对应的二进制为1101

2、信息码左移R位,低位补0

101001——>101001000

3、相除

对移位后的信息码,用生成多项式进行模2除法,产生余数。

模二除:最高位是1就商1、模二减和异或想同。得到K位余数

101001000模二除1101 = 001

对应的CRC码:101001001

4、检错和纠错

发送:101001001 代表:C9C8C7C6C5C4C3C2C1

接收:101001001

接收方用1101进行除法,余数为000,没有出错。

若接收:101001011,余数为 010,代表出错

对于确定的生成多项式,出错位与余数是相对应得。

若2R >= K + R + 1,则CRC码可以纠正一个错误。

1、可检测奇数错误

2、可检测双bit得错误

3、可检测小于等于校验位长度的连续错误

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值