【发布时间】:2018-11-11 20:16:50
【问题描述】:
我从未见过没有最低项 x⁰ = 1 的 CRC 多项式。
有没有我还没有看到的例外情况? 为什么所有 CRC 多项式都有最低项 x⁰?
【问题讨论】:
标签: crc polynomials
我从未见过没有最低项 x⁰ = 1 的 CRC 多项式。
有没有我还没有看到的例外情况? 为什么所有 CRC 多项式都有最低项 x⁰?
【问题讨论】:
标签: crc polynomials
xn + ... + x0 形式的 CRC 多项式用于 n 位 CRC(它与数据位的无借位除法一起使用由产生 n 位余数的 CRC 多项式 (CRC)。如果 CRC 多项式的形式为 xn + ... + x1(没有 x0 项),那么它实际上是n-1 位 CRC。
但是,在某些情况下,通用代码可能会使用不同的表来快速计算 32 位或 16 位 CRC,其中代码主要部分的唯一区别是常量。代码的编写就像 CRC 的形式为 x32 + ... + x0,但允许大多数相同的代码生成 16 位 CRC ,多项式的形式为 x32 + ... + x16。完成最后一步校正,将最终的 CRC 右移 16 位,以将 16 位 CRC 放置在正确的位中。这方面的一个例子是在这个 500+ 行 fast crc32/16 assembly 示例中使用 pclmulqdq 指令(无进位乘法),在这种情况下设置为生成 16 位 CRC。
【讨论】: