CRC算法原理
循环冗余校验码 (Cyclic Redundancy Check, CRC) ,简称循环码,是一种常用的、具有检错、纠错能力的校验码,在早期的通信中运用广泛。循环冗余校验码常用于外存储器和计算机同步通信的数据校验。
奇偶校验码和海明校验码都是采用奇偶检测为手段检错和纠错的(奇偶校验码不具有纠错能力),而循环冗余校验则是通过某种数学运算来建立数据位和校验位的约定关系的。
1 | Cyclic |
CRC码的生成步骤
精简版如下:
1、将x的最高幂次为R的生成多项式G(x)转换成对应的R+1位二进制数。
2、将信息码左移R位,相当于对应的信息多项式C(x)*2R
3、用生成多项式(二进制数)对信息码做模2除,得到R位的余数。
4、拼接,将余数拼到信息码左移后空出的位置,得到完整的CRC码。
左移:
如xxxxxx<<2即左移2位,右边空出的位用0填补,高位左移溢出则舍弃该高位
这里正体现了“循环”
实例
参考:
原文作者: fliter
原文链接:
http://www.dashen.tech/2021/02/17/CRC算法原理/版权声明: 转载请注明出处