2

我正在使用 x-modem 协议和 133 字节数据包从串行端口读取文件。我在那读

      1 byte is SOH
      2 byte packet number
      3 byte nagative of packet number
next  128 bytes data
      2 bytes CRC sent from other side.

我必须计算从另一端发送的 128 字节数据和 2 字节 crc 的 CRC,我必须将其设为单字节并且必须与我计算的 crc 比较。我怎样才能在java中做到这一点?

4

3 回答 3

5

尝试使用Jacksum

于 2009-04-09T05:34:57.147 回答
1

Sun JDK 1.6 包含 sun.misc.CRC16,但有可能这不是您正在寻找的 CRC16,因为使用了几个不同的多项式。

于 2009-04-09T05:28:55.290 回答
1

这是我的 C 代码,移植到 Java 很简单——你可以以任何你喜欢的方式自由使用它。对 word 的引用是针对 16 位无符号值 - 您应该能够在 Java 中使用 char 代替。

自从我使用 16 位 CRC 以来已经太久了,所以我不记得是否存在基于播种的变化。我很确定我在 X-Modem 的 C 实现中使用了这段代码。

来源发布在tech.dolhub.com上。

于 2009-04-09T05:56:22.853 回答