Java CRC-CCITT(科米特)

Java CRC-CCITT(科米特),java,gps,crc,crc16,Java,Gps,Crc,Crc16,我正在分析一个使用CRC-CCITT16(Kermit)的全球定位系统的数据源 对于下面的消息 来自GPS设备的消息: (byte) 0x3,(byte) 0xfb,(byte) 0x0,(byte) 0x3,(byte) 0x13,(byte) 0x61,(byte) 0x2d,(byte) 0x5f,(byte) 0xc0,(byte) 0xa,(byte) 0x1,(byte) 0x1,(byte) 0x10,(byte) 0x55,(byte) 0xff,(byte) 0xb1,(byt

我正在分析一个使用CRC-CCITT16(Kermit)的全球定位系统的数据源 对于下面的消息

来自GPS设备的消息:

(byte) 0x3,(byte) 0xfb,(byte) 0x0,(byte) 0x3,(byte) 0x13,(byte) 0x61,(byte) 0x2d,(byte) 0x5f,(byte) 0xc0,(byte) 0xa,(byte) 0x1,(byte) 0x1,(byte) 0x10,(byte) 0x55,(byte) 0xff,(byte) 0xb1,(byte) 0x59,(byte) 0x0,(byte) 0x0,(byte) 0x2f,(byte) 0xd3,(byte) 0xe4,(byte) 0x11,(byte) 0x7,(byte) 0xb8,(byte) 0x2,(byte) 0x2,(byte) 0x2,(byte) 0x77,(byte) 0x47,(byte) 0xc2,(byte) 0x6,(byte) 0x0,(byte) 0x0,(byte) 0x23,(byte) 0x7,(byte) 0x7,(byte) 0x5,(byte) 0x0,(byte) 0x1b,(byte) 0xff,(byte) 0x2,(byte) 0x0,(byte) 0x3,(byte) 0x0,(byte) 0x1c,(byte) 0x1,(byte) 0x20,(byte) 0x20,(byte) 0xad,(byte) 0x0,(byte) 0x4,(byte) 0x1d,(byte) 0x0,(byte) 0x0,(byte) 0x1e,(byte) 0x0,(byte) 0x0,(byte) 0x16,(byte) 0x0,(byte) 0x11,(byte) 0x17,(byte) 0x0,(byte) 0x6,(byte) 0x2,(byte) 0x41,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x96,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x55,(byte) 0xff,(byte) 0xd2,(byte) 0xfb,(byte) 0x0,(byte) 0x0,(byte) 0x2f,(byte) 0xd3,(byte) 0xe5,(byte) 0xa1,(byte) 0x7,(byte) 0xb8,(byte) 0xa,(byte) 0x25,(byte) 0x2,(byte) 0x55,(byte) 0x0,(byte) 0x0,(byte) 0x5,(byte) 0x0,(byte) 0x0,(byte) 0x20,(byte) 0x7,(byte) 0x7,(byte) 0x5,(byte) 0x0,(byte) 0x1b,(byte) 0xff,(byte) 0x2,(byte) 0x0,(byte) 0x3,(byte) 0x0,(byte) 0x1c,(byte) 0x1,(byte) 0x20,(byte) 0x1f,(byte) 0xad,(byte) 0x0,(byte) 0x4,(byte) 0x1d,(byte) 0x0,(byte) 0x0,(byte) 0x1e,(byte) 0x0,(byte) 0x0,(byte) 0x16,(byte) 0x0,(byte) 0x11,(byte) 0x17,(byte) 0x0,(byte) 0x1,(byte) 0x2,(byte) 0x41,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x96,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x55,(byte) 0xff,(byte) 0xe1,(byte) 0x14,(byte) 0x0,(byte) 0x0,(byte) 0x2f,(byte) 0xd3,(byte) 0xe5,(byte) 0xa1,(byte) 0x7,(byte) 0xb8,(byte) 0xa,(byte) 0x25,(byte) 0x0,(byte) 0x56,(byte) 0x0,(byte) 0x0,(byte) 0x8,(byte) 0x0,(byte) 0x0,(byte) 0x16,(byte) 0x7,(byte) 0x7,(byte) 0x5,(byte) 0x0,(byte) 0x1b,(byte) 0xff,(byte) 0x2,(byte) 0x0,(byte) 0x3,(byte) 0x0,(byte) 0x1c,(byte) 0x1,(byte) 0x20,(byte) 0x20,(byte) 0xad,(byte) 0x0,(byte) 0x4,(byte) 0x1d,(byte) 0x0,(byte) 0x0,(byte) 0x1e,(byte) 0x0,(byte) 0x0,(byte) 0x16,(byte) 0x0,(byte) 0x12,(byte) 0x17,(byte) 0x0,(byte) 0x1,(byte) 0x2,(byte) 0x41,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x96,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x55,(byte) 0xff,(byte) 0xef,(byte) 0x2d,(byte) 0x0,(byte) 0x0,(byte) 0x2f,(byte) 0xd3,(byte) 0xe5,(byte) 0xa1,(byte) 0x7,(byte) 0xb8,(byte) 0xa,(byte) 0x25,(byte) 0x1,(byte) 0xe5,(byte) 0x0,(byte) 0x0,(byte) 0x6,(byte) 0x0,(byte) 0x0,(byte) 0xe,(byte) 0x7,(byte) 0x7,(byte) 0x5,(byte) 0x0,(byte) 0x1b,(byte) 0xff,(byte) 0x2,(byte) 0x0,(byte) 0x3,(byte) 0x0,(byte) 0x1c,(byte) 0x1,(byte) 0x20,(byte) 0x20,(byte) 0xad,(byte) 0x0,(byte) 0x4,(byte) 0x1d,(byte) 0x0,(byte) 0x0,(byte) 0x1e,(byte) 0x0,(byte) 0x0,(byte) 0x16,(byte) 0x0,(byte) 0x12,(byte) 0x17,(byte) 0x0,(byte) 0x1,(byte) 0x2,(byte) 0x41,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x96,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x55,(byte) 0xff,(byte) 0xfd,(byte) 0x46,(byte) 0x0,(byte) 0x0,(byte) 0x2f,(byte) 0xd3,(byte) 0xe5,(byte) 0xa1,(byte) 0x7,(byte) 0xb8,(byte) 0xa,(byte) 0x25,(byte) 0x0,(byte) 0x27,(byte) 0x0,(byte) 0x0,(byte) 0x9,(byte) 0x0,(byte) 0x0,(byte) 0xa,(byte) 0x7,(byte) 0x7,(byte) 0x5,(byte) 0x0,(byte) 0x1b,(byte) 0xff,(byte) 0x2,(byte) 0x0,(byte) 0x3,(byte) 0x0,(byte) 0x1c,(byte) 0x1,(byte) 0x20,(byte) 0x20,(byte) 0xad,(byte) 0x0,(byte) 0x4,(byte) 0x1d,(byte) 0x0,(byte) 0x0,(byte) 0x1e,(byte) 0x0,(byte) 0x0,(byte) 0x16,(byte) 0x0,(byte) 0x11,(byte) 0x17,(byte) 0x0,(byte) 0x1,(byte) 0x2,(byte) 0x41,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x96,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x56,(byte) 0x38,(byte) 0x55,(byte) 0xc3,(byte) 0x0,(byte) 0x0,(byte) 0x2f,(byte) 0xd3,(byte) 0xf7,(byte) 0x99,(byte) 0x7,(byte) 0xb8,(byte) 0xf,(byte) 0x9d,(byte) 0x0,(byte) 0x0,(byte) 0x48,(byte) 0x44,(byte) 0x4,(byte) 0x0,(byte) 0x3,(byte) 0x1b,(byte) 0x7,(byte) 0x7,(byte) 0x5,(byte) 0x0,(byte) 0x1b,(byte) 0xff,(byte) 0x2,(byte) 0x0,(byte) 0x3,(byte) 0x0,(byte) 0x1c,(byte) 0x1,(byte) 0x20,(byte) 0x1c,(byte) 0xad,(byte) 0x0,(byte) 0x4,(byte) 0x1d,(byte) 0x0,(byte) 0x0,(byte) 0x1e,(byte) 0x0,(byte) 0x0,(byte) 0x16,(byte) 0x0,(byte) 0xe,(byte) 0x17,(byte) 0x0,(byte) 0x1,(byte) 0x2,(byte) 0x41,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x96,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x56,(byte) 0x38,(byte) 0xa8,(byte) 0xd7,(byte) 0x0,(byte) 0x0,(byte) 0x2f,(byte) 0xd3,(byte) 0xe3,(byte) 0x17,(byte) 0x7,(byte) 0xb8,(byte) 0x14,(byte) 0x1b,(byte) 0x0,(byte) 0xc9,(byte) 0x45,(byte) 0xb0,(byte) 0x4,(byte) 0x0,(byte) 0x5,(byte) 0x14,(byte) 0x7,(byte) 0x7,(byte) 0x5,(byte) 0x0,(byte) 0x1b,(byte) 0xff,(byte) 0x2,(byte) 0x0,(byte) 0x3,(byte) 0x0,(byte) 0x1c,(byte) 0x1,(byte) 0x20,(byte) 0x1d,(byte) 0xad,(byte) 0x0,(byte) 0x4,(byte) 0x1d,(byte) 0x0,(byte) 0x0,(byte) 0x1e,(byte) 0x0,(byte) 0x0,(byte) 0x16,(byte) 0x0,(byte) 0xe,(byte) 0x17,(byte) 0x0,(byte) 0x0,(byte) 0x2,(byte) 0x41,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x96,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x56,(byte) 0x38,(byte) 0xb6,(byte) 0xf0,(byte) 0x0,(byte) 0x0,(byte) 0x2f,(byte) 0xd3,(byte) 0xe3,(byte) 0x17,(byte) 0x7,(byte) 0xb8,(byte) 0x14,(byte) 0x1b,(byte) 0x0,(byte) 0x0,(byte) 0x45,(byte) 0xb0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x7,(byte) 0x7,(byte) 0x5,(byte) 0x0,(byte) 0x1b,(byte) 0xff,(byte) 0x2,(byte) 0x0,(byte) 0x3,(byte) 0x0,(byte) 0x1c,(byte) 0x1,(byte) 0x20,(byte) 0x1c,(byte) 0xad,(byte) 0x0,(byte) 0x4,(byte) 0x1d,(byte) 0x0,(byte) 0x0,(byte) 0x1e,(byte) 0x0,(byte) 0x0,(byte) 0x16,(byte) 0x0,(byte) 0xf,(byte) 0x17,(byte) 0x0,(byte) 0x3,(byte) 0x2,(byte) 0x41,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x96,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x56,(byte) 0x54,(byte) 0x80,(byte) 0xf5,(byte) 0x0,(byte) 0x0,(byte) 0x2f,(byte) 0xd3,(byte) 0xea,(byte) 0x62,(byte) 0x7,(byte) 0xb8,(byte) 0x14,(byte) 0xb1,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x4,(byte) 0x0,(byte) 0x0,(byte) 0x1f,(byte) 0x7,(byte) 0x7,(byte) 0x5,(byte) 0x0,(byte) 0x1b,(byte) 0xff,(byte) 0x2,(byte) 0x0,(byte) 0x3,(byte) 0x0,(byte) 0x1c,(byte) 0x1,(byte) 0x20,(byte) 0x1f,(byte) 0xad,(byte) 0x0,(byte) 0x4,(byte) 0x1d,(byte) 0x0,(byte) 0x0,(byte) 0x1e,(byte) 0x0,(byte) 0x0,(byte) 0x16,(byte) 0x0,(byte) 0x11,(byte) 0x17,(byte) 0x0,(byte) 0x0,(byte) 0x2,(byte) 0x41,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x96,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x56,(byte) 0x54,(byte) 0x81,(byte) 0x9,(byte) 0x0,(byte) 0x0,(byte) 0x2f,(byte) 0xd3,(byte) 0xe6,(byte) 0xde,(byte) 0x7,(byte) 0xb8,(byte) 0x13,(byte) 0x10,(byte) 0x0,(byte) 0x24,(byte) 0x0,(byte) 0x0,(byte) 0x4,(byte) 0x0,(byte) 0x0,(byte) 0x1f,(byte) 0x7,(byte) 0x7,(byte) 0x5,(byte) 0x0,(byte) 0x1b,(byte) 0xff,(byte) 0x2,(byte) 0x0,(byte) 0x3,(byte) 0x0,(byte) 0x1c,(byte) 0x1,(byte) 0x20,(byte) 0x1f,(byte) 0xad,(byte) 0x0,(byte) 0x4,(byte) 0x1d,(byte) 0x0,(byte) 0x0,(byte) 0x1e,(byte) 0x0,(byte) 0x0,(byte) 0x16,(byte) 0x0,(byte) 0x10,(byte) 0x17,(byte) 0x0,(byte) 0x1,(byte) 0x2,(byte) 0x41,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x96,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x56,(byte) 0x54,(byte) 0x81,(byte) 0x13,(byte) 0x0,(byte) 0x0,(byte) 0x2f,(byte) 0xd3,(byte) 0xe8,(byte) 0xc1,(byte) 0x7,(byte) 0xb8,(byte) 0x11,(byte) 0xe4,(byte) 0x0,(byte) 0x0,(byte) 0x30,(byte) 0x2a,(byte) 0x4,(byte) 0x0,(byte) 0x1,(byte) 0x1f,(byte) 0x7,(byte) 0x7,(byte) 0x5,(byte) 0x0,(byte) 0x1b,(byte) 0xff,(byte) 0x2,(byte) 0x0,(byte) 0x3,(byte) 0x0,(byte) 0x1c,(byte) 0x1,(byte) 0x20,(byte) 0x1f,(byte) 0xad,(byte) 0x0,(byte) 0x4,(byte) 0x1d,(byte) 0x0,(byte) 0x0,(byte) 0x1e,(byte) 0x0,(byte) 0x0,(byte) 0x16,(byte) 0x0,(byte) 0xe,(byte) 0x17,(byte) 0x0,(byte) 0x5,(byte) 0x2,(byte) 0x41,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x96,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x56,(byte) 0x54,(byte) 0x81,(byte) 0x1d,(byte) 0x0,(byte) 0x0,(byte) 0x2f,(byte) 0xd3,(byte) 0xeb,(byte) 0x7d,(byte) 0x7,(byte) 0xb8,(byte) 0x10,(byte) 0xc9,(byte) 0x0,(byte) 0x0,(byte) 0x2f,(byte) 0x58,(byte) 0x4,(byte) 0x0,(byte) 0x2,(byte) 0x1f,(byte) 0x7,(byte) 0x7,(byte) 0x5,(byte) 0x0,(byte) 0x1b,(byte) 0xff,(byte) 0x2,(byte) 0x0,(byte) 0x3,(byte) 0x0,(byte) 0x1c,(byte) 0x1,(byte) 0x20,(byte) 0x1f,(byte) 0xad,(byte) 0x0,(byte) 0x4,(byte) 0x1d,(byte) 0x0,(byte) 0x0,(byte) 0x1e,(byte) 0x0,(byte) 0x0,(byte) 0x16,(byte) 0x0,(byte) 0x11,(byte) 0x17,(byte) 0x0,(byte) 0x2,(byte) 0x2,(byte) 0x41,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x96,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x56,(byte) 0x54,(byte) 0x81,(byte) 0x27,(byte) 0x0,(byte) 0x0,(byte) 0x2f,(byte) 0xd3,(byte) 0xec,(byte) 0x56,(byte) 0x7,(byte) 0xb8,(byte) 0x11,(byte) 0x3e,(byte) 0x0,(byte) 0x0,(byte) 0x2f,(byte) 0x58,(byte) 0x4,(byte) 0x0,(byte) 0x0,(byte) 0x1e,(byte) 0x7,(byte) 0x7,(byte) 0x5,(byte) 0x0,(byte) 0x1b,(byte) 0xff,(byte) 0x2,(byte) 0x0,(byte) 0x3,(byte) 0x0,(byte) 0x1c,(byte) 0x1,(byte) 0x20,(byte) 0x1f,(byte) 0xad,(byte) 0x0,(byte) 0x4,(byte) 0x1d,(byte) 0x0,(byte) 0x0,(byte) 0x1e,(byte) 0x0,(byte) 0x0,(byte) 0x16,(byte) 0x0,(byte) 0x11,(byte) 0x17,(byte) 0x0,(byte) 0x1,(byte) 0x2,(byte) 0x41,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x96,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x56,(byte) 0x54,(byte) 0x81,(byte) 0x31,(byte) 0x0,(byte) 0x0,(byte) 0x2f,(byte) 0xd3,(byte) 0xe9,(byte) 0xed,(byte) 0x7,(byte) 0xb8,(byte) 0x10,(byte) 0xfb,(byte) 0x0,(byte) 0x0,(byte) 0x2f,(byte) 0x58,(byte) 0x4,(byte) 0x0,(byte) 0x0,(byte) 0x1e,(byte) 0x7,(byte) 0x7,(byte) 0x5,(byte) 0x0,(byte) 0x1b,(byte) 0xff,(byte) 0x2,(byte) 0x0,(byte) 0x3,(byte) 0x0,(byte) 0x1c,(byte) 0x1,(byte) 0x20,(byte) 0x1f,(byte) 0xad,(byte) 0x0,(byte) 0x4,(byte) 0x1d,(byte) 0x0,(byte) 0x0,(byte) 0x1e,(byte) 0x0,(byte) 0x0,(byte) 0x16,(byte) 0x0,(byte) 0x11,(byte) 0x17,(byte) 0x0,(byte) 0x0,(byte) 0x2,(byte) 0x41,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x96,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x56,(byte) 0x54,(byte) 0x81,(byte) 0x3b,(byte) 0x0,(byte) 0x0,(byte) 0x2f,(byte) 0xd3,(byte) 0xea,(byte) 0xc6,(byte) 0x7,(byte) 0xb8,(byte) 0xf,(byte) 0x18,(byte) 0x0,(byte) 0x7,(byte) 0x31,(byte) 0xec,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x7,(byte) 0x7,(byte) 0x5,(byte) 0x0,(byte) 0x1b,(byte) 0xff,(byte) 0x2,(byte) 0x0,(byte) 0x3,(byte) 0x0,(byte) 0x1c,(byte) 0x1,(byte) 0x20,(byte) 0x1f,(byte) 0xad,(byte) 0x0,(byte) 0x4,(byte) 0x1d,(byte) 0x0,(byte) 0x0,(byte) 0x1e,(byte) 0x0,(byte) 0x0,(byte) 0x16,(byte) 0x0,(byte) 0x11,(byte) 0x17,(byte) 0x0,(byte) 0x0,(byte) 0x2,(byte) 0x41,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x96,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x56,(byte) 0x54,(byte) 0x81,(byte) 0x45,(byte) 0x0,(byte) 0x0,(byte) 0x2f,(byte) 0xd3,(byte) 0xe8,(byte) 0xf3,(byte) 0x7,(byte) 0xb8,(byte) 0xe,(byte) 0xe6,(byte) 0x0,(byte) 0x32,(byte) 0x31,(byte) 0xec,(byte) 0x4,(byte) 0x0,(byte) 0x0,(byte) 0x1e,(byte) 0x7,(byte) 0x7,(byte) 0x5,(byte) 0x0,(byte) 0x1b,(byte) 0xff,(byte) 0x2,(byte) 0x0,(byte) 0x3,(byte) 0x0,(byte) 0x1c,(byte) 0x1,(byte) 0x20,(byte) 0x1f,(byte) 0xad,(byte) 0x0,(byte) 0x4,(byte) 0x1d,(byte) 0x0,(byte) 0x0,(byte) 0x1e,(byte) 0x0,(byte) 0x0,(byte) 0x16,(byte) 0x0,(byte) 0x11,(byte) 0x17,(byte) 0x0,(byte) 0x1,(byte) 0x2,(byte) 0x41,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x96,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0x0,(byte) 0xad,(byte) 0xa4
其中最后2个字节是CRC。 用于计算CRC的Java代码为:

private static int crc16(byte[] buffer, int length) {
            int CRC = 0x0;
            int carry = 0;
            int poly = 0x8408;
            for(int index = 0; index < length; index++) {
                CRC ^= (buffer[index] & 0xFF);
                for(int i = 0; i < 8; i++) {
                    carry = CRC & 1;
                    CRC >>= 1;
                    if(carry != 0) {
                        CRC ^= poly;
                    }
                }

            }
            return CRC;
        }
private static int crc16(字节[]缓冲区,int长度){
int CRC=0x0;
整数进位=0;
int poly=0x8408;
for(int index=0;index>=1;
如果(进位!=0){
CRC^=多边形;
}
}
}
返回CRC;
}
使用上述代码时,CRC计算值为58001。但是消息中的CRC是44452。
谁能帮我一个忙吗?我甚至尝试了其他CRC计算的实现,但都没有成功。

前两个字节是以大端顺序排列的长度,
0x03fb
=1019。除去这些字节和最后两个字节,即16位CRC,将问题中的代码应用于剩余的1019字节。这将为您提供CRC
0xada4
,这实际上是存储在消息末尾的内容,同样以大端顺序,
0xad 0xa4

您的CRC代码和58001结果对于所述CRC和所提供的消息都是正确的。您如何知道这是要使用的CRC(Kermit)?您确定该邮件已正确完整地复制到此处吗?您确定知道消息中CRC的位置吗?你能提供更多的CRC消息示例吗?@Mark Adler,正如你所说,代码是有效的。问题在于消息的前两个字节包含关于数据包长度的信息,在计算CRC时避免使用它,它工作得很好。有人能帮我结束这个问题吗?然后你回答了你自己的问题!