CRC 16-CCITT与查找表



所以我对CRC的了解,也做了一个Java实现是这样的:

初始消息为16位多项式,例如

0x0617
65
0000.0110.0001.0111

这个得到另外16个0位

0000.0110.0001.0111|0000.0000.0000.0000

然后,有除数

0x1021
0001.0000.0010.0001 (0, 5, 12)

我们在初始消息中每个"1"的开始处对齐它,并在比特之间进行异或,直到初始消息中没有更多的1。在我们的示例中,总共有6个xor。

CRC将是我们消息的最后16位,或者是除数的剩余部分。在本例中,101011110110000 .

我的问题是,我如何实现这与查找表?谁能给我举个多项式的数值例子告诉我它是如何计算的?

我今天一直在研究这个问题,并创建了一个适用于任何CRC的代码,您会在CRC .h文件中找到许多不同的CRC,其中一些经过测试和工作。代码是用C完成的,所以在Java中使用它应该没有太多问题。

为了能够使用任何类型的CRC,查找表是动态生成的,您可以将A_crcLookupTable数组放在watch窗口中,如果您想将其作为常量包含,则可以从数组中复制值。

我希望它能帮助你:https://sourceforge.net/projects/crccalculator/files/CRC/?

相关内容

  • 没有找到相关文章

最新更新