如何计算传入 32 位数据的 CRC8

Posted

技术标签:

【中文标题】如何计算传入 32 位数据的 CRC8【英文标题】:How to calculate CRC8 of incoming 32bit data 【发布时间】:2020-03-03 14:25:58 【问题描述】:

我需要使用 32 位数据的特定多项式来实现 CRC-8。这是我从发射机得到的结果:

Data:12586966
CRC-8: 22(0x16)
Polynomial:0x97
Initial data:0x00
No final XOR calculation

检查传入数据是否等于其 CRC-8 的算法是什么?

【问题讨论】:

【参考方案1】:

如果 CRC 附加到数据中,并且没有最终 XOR,则重新计算的 CRC 将为零。

在十六进制中,4个字节的数据是:00 C0 0F D6。 CRC8 计算有效地附加一个 00 以创建被除数,并使用 197 作为除数生成余数:00 C0 0F D6 D6 % 197 = 16。然后从被除数中“减去”余数,但在这种情况下,两者都加和减法相同,异或,所以 CRC 只是附加到数据:00 C0 0F D6 16。使用附加的 CRC(以及隐含的附加 00)重复该过程,00 C0 0F D6 D6 16 00 % 197 = 00。

【讨论】:

非常感谢

以上是关于如何计算传入 32 位数据的 CRC8的主要内容,如果未能解决你的问题,请参考以下文章

CRC8,CRC16,CRC32校验不可靠的概率有多高

Python CRC8 计算

python3 crc8校验-3步实现计算

Java基础2:基本数据类型与常量池

如何确定传入连接来自本地计算机

office32位和64位的区别,用户如何选择