引用这篇文章:
在许多行业中,第一个多项式用于创建 CRC 表,然后将其应用于性能目的。IEEE 802.3 定义的默认多项式是 0xA001(16 位)和 0×04C11DB7(32 位)。我们在 C# 中,因此我们应该使用它的反转版本,即 0×8408 用于 16 位,0xEDB88320 用于 32 位。我们还将在示例中使用这些多项式。
为什么我们要在 C# 中使用 hex 定义的 int 的逆版本?
引用文章的作者如何将04C11DB7反转为0xEDB88320?
我还研究了其他 crc32 C# 和 C 实现。在所有这些中,C 使用 04C11DB7,C# 使用 0xEDB88320