【问题标题】:Using qchecksum instead of boost crc16使用 qchecksum 代替 boost crc16
【发布时间】:2016-08-01 13:02:06
【问题描述】:

我想使用 qchecksum 而不是 boost crc 在数据包上获取 crc16,但我无法获取相同的结果。如何在 qt 中像 boost crc 一样获取 crc16 校验和?

boost::crc<16, 0x1040, 0, 0, false, false>(packet, 4)

【问题讨论】:

  • 你能告诉我们你尝试使用QChecksum的那一行吗?
  • @Torbjörn,假设数据包等于“0x00000000”,那么 boost crc 等于 0 但 qt crc 等于 64734
  • 没有一个 16 位 CRC 多项式,也没有一种方法可以使用一个多项式来计算 CRC。为什么你认为 boost 和 Qt 使用相同的多项式,具有相同的参数?

标签: c++ qt boost crc


【解决方案1】:

有许多 CRC-16 多项式和参数集。 qchecksum 只是其中之一的实现。所以不,你不能让 qchecksum 匹配任意提升校验和。但如果这是一个选项,您可以调整 boost checksum 参数以匹配 qchecksum。

查看 qchecksum 源(并玩参数)它似乎是这个:

boost::crc<16, 0x1021, 0xFFFF, 0xFFFF, true, true>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-21
    • 2014-03-21
    • 1970-01-01
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多