有关CRC校验计算

CRC校验是一种通过指定多项式进行数据错误检测的方法。在发送数据时,会根据多项式计算出校验码添加到数据后。接收端再进行相同计算,若余数为0则数据正确。举例说明了如何对数据100101011使用多项式G(x)=x^4+x^2+x进行CRC校验,计算得到的CRC校验位是1000。
摘要由CSDN通过智能技术生成

        CRC校验主要是通过指定一个多项式,例如G(x)=x4+x2+x,将数据加上通过多项式计算后得出的校验码后发送到接收端,接收端接收到数据后,用接收到的数据通过同样的计算除以多项式的值,若余数为0则数据无误,否则数据错误。

        对于多项式,G(x)=x4+x2+x,可以看出总共有5位,从右往左数分别是第一位(x)是1,第二位(x2)是1,第四位(x4)是1,即G(x)表达的数是10110,共五位,校验位为k-1位,少一位即4位,例如要发送数据位100101011,可以在后面先补上4个0,用1001010110000模2除法除以生成的多项式10110,取得的余数便是校验位,余数位数要与校验位一致,不足前面补0。

        例如 将要发送数据100101011,多项式是G(x)=x4+x2+x,计算crc校验位是多少?

        解:通过多项式最高项x4可以看出,多项式是5位数,根据规则,crc校验位要少一位,为4位。由G(x)知,分别是第五位,第三位,第一位取1,即10110。 数据位100101011后面补上4个02除法除以生成的多项式10110。

        注意,对于模2除法时上计算得出的101010100,若计算时不足5位则写0,并后移1位在做比较,两个箭头表示的是像箭头2指的0所在位对应的只有4位数不足五位,置0,并后退一位到3箭头,符合五位,置1,以此类推,具体如图箭头所指,具体步骤如下图:

         故校验位CRC是1000,将1000与之前补的4个0替换,即要传输的数据是1001010111000。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值