【问题标题】:Identifying polynomial terms of the CRC识别 CRC 的多项式项
【发布时间】:2020-11-23 23:34:45
【问题描述】:

我正在查看this page,我看到了这个多项式的项:

  1. 0xad0424f3 = x^32 +x^30 +x^28 +x^27 +x^25 +x^19 +x^14 +x^11 +x^8 +x^7 +x^6 +x^5 +x^2 +x +1

自从转换十六进制后似乎不正确:

0xad0424f310101101000001000010010011110011

它会变成:

  1. x^31+ x^29+ x^27+ x^26+ x^24+ x^18+ x^13+ x^10+ x^7+ x^6+ x^5+ x^4+ x^1+ x^0

你能帮我理解哪一个是正确的吗? 那么 64 位 ECMA 多项式呢,

0xC96C5795D7870F42

我想知道每个多项式0xad0424f30xC96C5795D7870F42 中的项数。

【问题讨论】:

    标签: crc polynomials polynomial-math crc32 crc64


    【解决方案1】:

    该页面位于 Koopman 的网站上,在那里他有自己的 CRC 多项式表示法。由于所有 CRC 多项式都有一个 1 项,因此他删除了该项,将多项式除以 x,并以二进制表示 that。这就是你所看到的。

    好处是,使用 64 位字,您可以表示所有 64 位和更短的 CRC 多项式,CRC 的长度由字中最高有效的 1 表示。

    据我所知,缺点是只有 Koopman 使用该符号,导致其他人有些混淆。喜欢你自己。

    至于您的 64 位 CRC,您记下的来自 Wikipedia page 的多项式实际上是 反转 版本,并且不在 Koopman 的符号中。展开成多项式显示在此处,在十六进制表示下方。它有 34 个术语。

    【讨论】:

    • 谢谢你的回答,这个0xC96C5795D7870F42不是来自Koopman的网站,所以你怎么知道你需要给它加一个额外的1?
    • 因为它以2 结尾。正如我所说,CRC 多项式总是有一个 1 项,所以它不可能是偶数,除非它使用 Koopman 符号。
    • 如果不是来自 Koopman 的网站,它来自哪里?这将是 Koopman 以外的其他人使用他的符号的示例。
    • 没有什么不同。您刚刚在表格中选择了错误的条目。 0x42F0E1EBA9EA3693 中通常表示的实际多项式,在您选择的那个的左侧。您选择的那个只是为了在实现 CRC 的反射版本时方便,其中数据位从字节的 最低 位开始,而不是从 字节的最重要的位。
    猜你喜欢
    • 2016-07-25
    • 1970-01-01
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    相关资源
    最近更新 更多