美文网首页
循环冗余校验(CRC)码

循环冗余校验(CRC)码

作者: FlintyLemming | 来源:发表于2019-02-19 17:10 被阅读0次

与海明校验码类似,CRC码也是数据通讯中常用的校验方式。
CRC 算法的基本思想是将传输的数据当做一个位数很长的数。将这个数除以另一个数。得到的余数作为校验数据附加到原数据后面。

结构

与海明校验码数据位和校验位穿插不同,CRC码中,校验位(R位)在信息位(K位)后面

计算校验位

以一个题目为例:设待校验的数据为。D8~D1 = 10101011,若采用CRC,且生成多项式为 10011,则其 CRC 码为:
这里首先要注意题目中的一个表述——“多项式”,该题目中写作“10011”,在有的题目中往往写作“x^4+x+1”
首先,在数据位后加多项式最高幂次个0,比如这里的多项式最高次项为x^4,那就在数据位后加四个0,变成:101010110000,作为被除数
然后,将多项式 10011 作为除数进行断除。需要注意的是,图中所框的部分,对应位只做xor运算,也就是做减法但不影响其他位

image

最后得到的余数:1010,即是校验位。那么整个CRC码为:10101011 1010

接收端校验

以上一节例题为例,假设收到的CRC码变成了10001011 1010,第10位(右边为低位)发生了错误。
现在尝试用CRC码与多项式 10011 进行短除:


image

得到余数为 1010(2) = 18+12 = 10(10) ,即第10位发生错误,只需要反转第10位的值,便可获得正确的值

相关文章

  • 一文知晓CRC码计算及校验原理

    奇偶校验码(PCC)只能校验一位错误,而循环冗余校验码(CRC)的检错能力更强,可以检出多位错误。 1. CRC校...

  • 循环冗余校验(CRC)算法入门引导

    循环冗余校验(CRC)算法入门引导

  • 循环冗余校验(CRC)码

    与海明校验码类似,CRC码也是数据通讯中常用的校验方式。CRC 算法的基本思想是将传输的数据当做一个位数很长的数。...

  • iOS CRC 校验

    CRC校验,全名叫做循环冗余校验码,是数据通讯中最常采用的校验方式。为了学习这个CRC,在网上找了好多资料,下面这...

  • crc校验的python实现

    crc(Cyclic Redundancy Check):循环冗余校验,是一种常用的查错校验码。本质是在要发送的信...

  • CRC校验

    采用如下的CRC校验方法 冗余循环码(CRC)包含2个字节。CRC码由发送设备计算,放置于发送信息的尾部。接收信息...

  • CRC循环冗余校验码

    From Wiki-Cyclic redundancy check A cyclic redundancy che...

  • MySQL crc32 & crc64函数 提高字符串查询效率

    一、概念:CRC全称为Cyclic Redundancy Check,又叫循环冗余校验。CRC32是CRC算法的一...

  • 三种校验码

    奇偶校验、海明码、CRC循环冗余校验码 三种校验码比较重要,需要牢记,在计算机网络中用处较大 奇偶校验 根据被传输...

  • java 案例CMD指令 byte CRC4、CRC5、CRC6

    CRC(循环冗余校验)在线计算:http://www.ip33.com/crc.html[http://www.i...

网友评论

      本文标题:循环冗余校验(CRC)码

      本文链接:https://www.haomeiwen.com/subject/xbufyqtx.html