crc - 如何计算传入 32 位数据的 CRC8
问题描述
我需要使用 32 位数据的特定多项式来实现 CRC-8。这是我从发射机得到的结果:
Data:12586966
CRC-8: 22(0x16)
Polynomial:0x97
Initial data:0x00
No final XOR calculation
检查传入数据是否等于其 CRC-8 的算法是什么?
解决方案
如果 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。
推荐阅读
- javascript - 想要在鼠标滚轮滚动 Nuxt js 中水平滚动
- batch-file - 设置变量 2 等于变量 1
- python - 如何预处理小于 256 x 256 的 ImageNet 数据?
- qt - QML TableView 和 Headerview 与 QSortFilterProxyModel
- javascript - 仅更新反应中一项的状态
- r - 无法在 Linux Mint 18 上更新 R
- python-3.x - 对象检测应用程序卡在 RingBuffer - 分配了 4 个缓冲区
- jenkins - Groovy 3 和 Jenkins 嵌入式脚本?
- spring-boot - 不知道如何将连接面包含到多模块 gradle 构建中
- bash - 用于增加每月日期范围的 Bash 脚本