3

我有一个生成多项式,它必须转换为二进制数才能在我的 CRC 代码中使用。例如,这些是正确转换的,我想知道它们是如何完成的。

这些用于 ROHC CRC 计算:

用于 3 位 CRC 的多项式为:C(x) = 1 + x + x^3

这是 0x06 用于 7 位 CRC 的多项式是: C(x) = 1 + x + x^2 + x^3 + x^6 + x^7

这是 0x79

想知道 0x06 和 0x79 是如何从这些方程推导出来的。

4

1 回答 1

3

这些似乎是反向二进制表示法。

当表示 CRC 多项式时,每个项映射到一个位。此外,最高阶项是隐含的并且被省略。

所以分解你的两个例子:

1 + x + x^3                    = 1101
1 + x + x^2 + x^3 + x^6 + x^7  = 11110011

砍掉最高阶项:

1101     -> 110      = 0x06
11110011 -> 1111001  = 0x79
于 2012-01-13T05:08:59.067 回答