Subject:
crc的计算好像不对,请版主核实。
[Print This Page]
Author:
sxbug
Time:
2023-3-8 00:01
Subject:
crc的计算好像不对,请版主核实。
用的cnCRC32单元。
setlength(sendbyte, 15); //sendbyte: TBytes;
sendbyte[0]:=$FE; sendbyte[1]:=$0D; sendbyte[2]:=$00; sendbyte[3]:=$00; sendbyte[4]:=$00; sendbyte[5]:=$00;
sendbyte[6]:=$03; sendbyte[7]:=$00; sendbyte[8]:=$30; sendbyte[9]:=$00; sendbyte[10]:=$30; sendbyte[11]:=$65;
sendbyte[12]:=$2A; sendbyte[13]:=$31; sendbyte[14]:=$34;
mycrc:= CRC16Calc(0,sendbyte,15); //FE 0D 00 00 00 00 03 00 30 00 30 65 2A 31 34
得到的结果是:70CD
但标准答案应该是:4BE6。
我也不知道错在哪里?请指教。
同时还想请问一下如何支持,其它格式的CRC计算呢?
谢谢
Author:
Passion
Time:
2023-8-14 06:37
首先,CRC16Calc(0,sendbyte,15); 这句里的sendbyte应该是sendbyte[0],函数的注释中写了此参数不是地址。
其次,该函数的实现是CRC16 系列函数(CCITT),初始值 FFFF,结果异或值 0000,多项式为 x16+x12+x5+1
不知道你提到的标准答案的多项式和初始值是什么?
Welcome to CnPack Forum (http://bbs.cnpack.org/)
Powered by Discuz! 5.0.0