CRC 16-CCITT与查找表

时间:2014-03-27 16:26:40

标签: lookup xor bits crc crc16

所以我对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

我的问题是,如何使用查找表实现此功能?有人能告诉我关于如何计算的多项式的数值例子吗?

1 个答案:

答案 0 :(得分:1)

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

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

我希望它可以帮到你: https://sourceforge.net/projects/crccalculator/files/CRC/