我有一个CRC的问题。我的十六进制消息是:80 000 000 03, crc是f5 1f。我想,多边形是0x1021 (crc-ccitt kermit)。如何找出正确的多边形?我怎么看,如果我需要反转它,如果初始值是0xffff或0x0000或其他什么?我要找的多边形怎么求?我是否必须将80 000 000 03和f5 f1转换为BIN,然后将两者分开?我试着用程序复仇来放松自己,但是没有成功。也许是因为我没有所有的参数- -
I found a php-function HERE
,但这不会为我计算正确的总和。也许不是php-function
0x1ff5
确实是80 00 00 03
的CRC-CCITT (Kermit)。(它显然以小端顺序存储在流中。)
您找到的PHP代码是用于false "CRC-CCITT"的,您可以在这里的RevEng目录中找到。
true CRC-CCITT (Kermit)参数在该目录中。位是反转的,所以你使用反转的多项式0x8408
,你把位向下而不是向上移动。初始寄存器内容为零,并且没有最终的异或