所以我对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
。
我的问题是,如何使用查找表实现此功能?有人能告诉我关于如何计算的多项式的数值例子吗?
答案 0 :(得分:1)
我今天一直在研究这个问题并创建了一个适用于任何CRC的代码,你会在crc.h文件中找到许多不同的CRC,其中一些已经过测试和工作。代码在C中完成,因此在Java中使用它不会有太多问题。
为了能够使用任何类型的CRC,查找表是动态生成的,您可以将A_crcLookupTable数组放在监视窗口中,如果要将其作为常量包含,则复制数组中的值。
我希望它可以帮到你: https://sourceforge.net/projects/crccalculator/files/CRC/?