【发布时间】:2015-05-04 16:55:14
【问题描述】:
我正在尝试使用 PHP CRC16 CCITT 函数来计算校验和。
设备向我发送一个包含校验和的数据包:
10 00 00 00 00 00 00 00 12 51 09 08 00 18 00 04 02 14 00 0c 00 0c 02 1c 00 02 00 00 00 00 00 00 a0 77
校验和在末尾:a0 77
我试过了
Convert C to PHP for CRC16 Function
如果没有成功,CRC 16 计算返回:E6 F4 而不是 a0 77
当我查找时,我得到了正确的十六进制信息:
100000000000000012510908001800040214000c000c021c0002000000000000
在http://www.lammertbies.nl/comm/info/crc-calculation.html 网站上,但我无法复制它。 (确保选择输入类型为 HEX)
你能帮我弄清楚如何获取十六进制值字符串的crc16 CCITT
100000000000000012510908001800040214000c000c021c0002000000000000
我正在寻找校验和a0 77
【问题讨论】:
-
@mpromonet 在我提到的网站上:CRC-CCITT (0xFFFF) = 0xA077。我很抱歉没有指定 CCITT
-
仅供参考,这实际上是“假”CCITT CRC-16。它通常被误认为是 CCITT CRC-16。然而,实际的 CCITT CRC-16 反映为零初始化。见this catalogue of CRCs。