Java中的CRC计算

时间:2009-04-09 05:13:05

标签: java serial-port core crc xmodem

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

      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字节数据的CRC和从另一侧发送的2字节crc,我必须使其成为单字节,并且必须与我计算的crc共同计算。我怎么能在java中这样做?

3 个答案:

答案 0 :(得分:5)

尝试使用Jacksum

答案 1 :(得分:1)

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

答案 2 :(得分:1)

这是我的C代码,移植到Java很简单 - 您可以随意使用它。对word的引用是针对16位无符号值的 - 您应该能够在Java中使用char。

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

来源发布在tech.dolhub.com