为什么CRC 32 Generator不能被11整除?

时间:2013-11-25 04:22:58

标签: math crc proof crc32 error-detection

CRC 32 Generator是一个33位的bin编号:

  

100000100110000010001110110110111

根据PDF Page 18

  

如果C(x)包含因子(x + 1)

,则可以检测到奇数个位错误

CRC 32应该满足能够检测任何奇数位错误的特性。但是,CRC 32生成器(即C(x))不能被11整除。换句话说,CRC-32多项式:

x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1

不包含因素(x + 1)

那么,财产如何得到满足?

注意:您可能会发现拥有online modulo-2 arithmetic calculator

会很有帮助

1 个答案:

答案 0 :(得分:4)

并非所有CRC多项式都可被x + 1整除。在检测一位错误和两位错误之间存在权衡。这取决于你想要防止的噪音来源。正如您所注意到的,常用的Ethernet / gzip /等。多项式不能被x + 1整除。

CRC-32C(Castagnoli)多项式 可被x + 1整除。实际上,它总体上也更强大,并且是新应用的首选CRC。 (实际上它并不只是发生 - 它是一次详尽搜索的结果。)它也是英特尔crc32指令计算的CRC。