CRC校验码的原理介绍及其实现

目录

CRC校验原理

在二进制编码传输协议中,为了数据传输的正确性经常会采用循环冗余校验码CRC(cyclic redundancy check)来测试一个数据包是否有错误发生,循环冗余校验码的理论虽然比较复杂,但是实现原理却较为简单。在k位信息码(多项式表示为m(x))后再拼接r位的校验码,整个编码长度为n位,因此这种编码又叫(n,k)码。对于一个给定的(n,k)码,可以证明存在一个最高次幂为n -k= r的多项式g(x)。根据g(x)可以生成k位信息的校验码,而g(x)叫做这个CRC码的生成多项式。

校验码的具体生成过程为:假设发送信息用数据多项式m(x)表示,将m(x)左移n -k位,则可表示成m(x)× 2n-k。这样m(x)的右边就会空出n -k位,即校验码的位置。m(x)× 2n-k通过模2除法(异或运算,后面详解)除以生成多项式g(x)得到的商Q(x)和余数r(x),其中余数r(x)就是校验码。即

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值