2014-02-19 40 views
0

通过移位操作可以快速计算CRC校验和,而无需使用查找表。用于CRC-16和CRC 32的按位更新等式

wikipedia page提供了两个著名的CRC-16多项式方程和代码片段。

是否有源可以找到类似的方程和其他16位和32位多项式的代码片段。或者,如何计算它们?

回答

0

代码保持不变,只有多项式,反射以及前后处理更改。你可以找到许多其他common polynomials and other CRC parameters here

+0

如果您使用的是按位功能,例如以下定义的功能,则代码始终相同:http://www.barrgroup.com/Embedded-Systems/How-To/CRC-Calculation- C代码。但是如果你使用维基页面中定义的代码,我的链接实现将会有所不同。尤其是变化的实体有什么变化。 – Maverik

0

有几页可用,您可以在其中找到用于您的目的的CRC多项式。正如其他答案中已经提到的那样,CRC计算保持不变,您可以毫无问题地改变多项式。您只需检查用于CRC的位数。但是这也可以在在线CRC计算器中测试。

CRC calculator 1

CRC calculator 2

Polynomials1

Polynomials 2

C++的升压库还提供了一个CRC实现方式中,如果需要的话。 Boost CRC