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

How to calculate CRC8 of incoming 32bit data

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

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

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

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

十六进制,4字节数据为:00 C0 0F D6。 CRC8 计算有效地附加了一个 00 以创建被除数并使用 197 作为除数生成余数:{00 C0 0F D6 D6} % 197 = 16。那么余数是来自被除数的 "subtracted",但在这种情况下加法和减法都是相同的异或,所以 CRC 只是附加到数据:{00 C0 0F D6 16}。使用附加的 CRC(和隐含的附加 00)重复该过程,{00 C0 0F D6 D6 16 00} % 197 = 00.