0

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

我的问题是,如何使用查找表来实现这一点?有人可以向我展示一个关于如何计算多项式的数值示例吗?

4

1 回答 1

1

我今天一直在研究这个问题,并创建了一个适用于任何 CRC 的代码,您会在 crc.h 文件中找到许多不同的 CRC,其中一些经过测试并且可以正常工作。代码是用 C 语言编写的,所以在 Java 中使用它应该不会有很多问题。

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

希望对您有所帮助: https ://sourceforge.net/projects/crccalculator/files/CRC/ ?

于 2014-03-29T23:58:38.353 回答