首页 > 解决方案 > 如何计算传入 32 位数据的 CRC8

问题描述

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

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

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

标签: crccrc8

解决方案


如果 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。


推荐阅读