crc - 我无法从数据集中推导出 CRC16 算法
问题描述
关于 CRC16 计算的第 2.3 节:
https://www.mennegat.nl/media/shop_item/Mezzo_Doc_1.1.0.pdf
它试图解释如何计算校验和。我有一个计算的工作示例
d37ccb00526000000014000000
作为校验和:
0825
UDP数据包的整个有效载荷是
02d37ccb00526000000014000000082503
设备会响应,因为它是完全可接受的数据包。我似乎无法通过所有示例 crc 检查找到 0825 的 16 位匹配项。
我们使用以下 16 位 crc 检查,我认为它们中的任何一个都不会输出 0825 作为结果。
https://github.com/sigurn/crc16/blob/master/crc16.go#L26-L48
谢谢你的帮助!
解决方案
看起来 CRC 是以小端格式存储的。以链接代码为基础,初始值 CRC = 0,代码生成 0x2508 的 CRC,存储为 0x08 0x25。
初始值可能导致 CRC = 0x0825 的可能性很小,但需要更多示例数据。
推荐阅读
- python - OSERROR:-1743 MESSAGE:用户已拒绝权限
- r - R 包和 VCE 选项
- javascript - 为什么最小和最大范围方法不返回有效输出
- java - “绝对 uri:http://java.sun.com/jstl/core 无法解析”
- google-home - Google 说我的应用程序已连接到我的网站,但我收到错误消息
- javascript - 你能在 JavaScript 的 switch case 中使用函数吗
- excel - VBA查找函数中的变量抛出错误
- excel - 如何将 if 语句与公式结合起来进行连接?
- python - Python jsonschema 尝试将 $ref 解析为远程 url。为什么要这样做?
- javascript - 如何按“时刻”日期值对对象数组进行排序?