CRC(循环冗余)校验

本文介绍了CRC(循环冗余)校验的实践心得和原理。通过CRC在线校验工具,探讨了CRC的参数配置,如校验码长度、生成多项式、初始值和异或值。接着解释了CRC校验的原理,即利用模2除法计算余数作为校验码。还举例展示了CRC-8算法的计算过程,并提供了C代码实现和快速算法。最后给出了CRC校验的相关资源链接。
摘要由CSDN通过智能技术生成

最近做下载工具的时候用到了CRC校验,自己实践了一下,下面做个心得总结。

CRC初体验

首先介绍一个CRC在线校验工具,可以看到其中有几个选项需要配置。
首先是校验码的长度order,然后是生成多项式polynom,其次是初始值initial value,最后是异或(Xor)值。此外还有两个选项,一个是“reverse data bytes”反转数据,另一个是“reverse CRC result result before Final XOR”在最后进行异或运算之前先反转CRC的结果值。

默认情况下(CRC32),会逆转(reverse)待校验数据的字节顺序,输入“123456789”,得到的校验码为:0xCBF43926

取消 reverse data bytesreverse CRC result before Final XOR后,重新计算校验码,可以看到CRC校验结果从之前的0xCBF43926变为了0xFC891918。

不同的校验长度代表不同校验方式,常用的crc32、crc16等。另外相同的校验长度下,不同的选项所代表的方法也不同。
关于CRC的参数说明,可以参考CRC的参数模型

CRC的原理

相信通过上面对CRC校验工具的使用,大家应该对CRC有一个比较直观的认识。接下来可以快速浏览一下CRC的原理(校验码的计算过程)。

CRC校验是将被处理报文的比特序列当作一个二进制多项式A(x)的系数,该系数除以发送方和接收方预先约定好的生成多项式g(x)后,将求得的余数P(x)作为CRC校验码附加到原始的报文上&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值