CRC循环冗余校验

CRC循环冗余校验

循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。——来自百度百科

CRC码: 数据 + 校验码,下面介绍校验码的计算及原理

  1. CRC校验码是通过模二除法(一种二进制的除法,被除数就是数据的二进制后面跟若干个0)得到的。 注:0的个数是除数的二进制位数减一
  2. 既然是通过除法得到,那就会有一个除数通过多项式得到) 关于多项式的生成,有它对应的标准
  3. 通过上述的除法运算,就会得到一个余数,余数就是校验码

举个例子吧: 某循环冗余码的生成多项式G(X)=X3+X2+1,用此生成多项式产生的冗余位,加载信息位后形成CRC码。若发送的信息位1111,写出CRC码。

  1. 首先,通过多项式,可以得到除数为1101
  2. 除数有4位,则被除数就是数据后面再加3个0,得到被除数1111000
  3. 接下来进行模二除,得到余数为111,则校验码就是111,CRC码就是1111111 模二除后,得到的余数与被除数相加后,就可以整除新的被除数,所以,接收方用多项式产生的除数模二除CRC码可以整出,即余数为0,这样;如果不为0,则为有错

在下也是个学生党,水平不高,对于深层次的数学知识也不太懂,对于这篇文章,希望可以帮助大家理解CRC的工作机制,不必追究更深的理论

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值