当前位置: 首页 > 知识库问答 >
问题:

CRC-16和CRC-32检查

巴洲
2023-03-14

我需要帮助试图验证CRC-16值(也需要帮助与CRC-32值)。我试图坐下来了解CRC是如何工作的,但我一片空白。

更多信息如下:

16000040FFFFFFFF00015FCB  
3C00003144010405E57022C7  
BA00001144010101B970F0ED  
3900010101390401B3049FF1  
09900C800000000000008CF3  
8590000000000000000035F7  
00900259025902590259EBC9  
0200002B00080191014BF5A2  
BB0000BEE0014401B970E51E  
3D000322D0320A2510A263A0  
2C0001440000D60000D65E54

--编辑--

我已经包括了更多的信息。我引用的文档是TIA-102.BAAA-A(来自TIA标准)。以下是文档陈述的内容(试图尽可能避免侵犯版权):

FM(x)的系数被放置在CRC字段中,其中CRC的第0个八位元组的MSB对应于x^31,而CRC的第3个八位元组的LSB对应于x^0。

在上面的引用中,我使用^来显示功能,因为在引用时格式并不相同。我不知道这有什么用,但这有帮助吗?

共有1个答案

狄奕
2023-03-14

CRC的计算有很多参数:多项式、初值、最终异或。详见维基百科。您的CRC似乎与您使用的站点上的CRC不匹配,但您可以尝试从文档中找到正确的参数,并使用不同的计算器,例如这个计算器(尽管恐怕它不支持十六进制输入)。

要记住的一件事是,CRC-16通常是在应该进行校验和的数据加上两个零字节的基础上计算的,例如,您可能正在寻找CRC16函数,其中CRC16(BD001325E032091B94C40000)==12AC。用这种方法计算校验和,附加校验和的数据的CRC将计算为0,这使得校验更容易,例如CRC16(BD001325E032091B94C412AC)==0000

 类似资料:
  • http://www.lammertbies.nl/comm/info/crc-calculation.html http://www.codeproject.com/articles/19059/c-ccitt-crc-algorithm 在上面与字节数组{0xee,0x01,0x13,0x00,0x06,0x1c,0x00,0x20,0x1d,0x00,0x00}的链接中,它使用CRC8(po

  • 问题内容: 我正在编写一个Python程序,以从6 GB bz2文件的中间提取数据。bzip2文件由可独立解密的数据块组成,因此我只需要找到一个块(它们由魔术位分隔),然后从内存中从中创建一个临时的单块bzip2文件,最后将其传递给bz2.decompress函数。容易,不是吗? bzip2格式的文件末尾具有crc32校验和。没问题,binascii.crc32即可解救。可是等等。要校验和的数据不

  • 我有一个通过RS232 COM与计算机通信的终端。我得到的协议说,我必须发送一定的字节组合和CRC 16 IBM计算的数据在最后发送 我还得到了一个C编写的应用程序,我可以用它来测试,该应用程序编写了一个带有发送数据和接收数据的日志。在该日志中,我查看是否向终端发送了以下字符串。我还必须发送数据06 35的这个CRC16 IBM结果。 我已经设法以某种方式将作为示例给出的C方法翻译成C#。但我的结

  • 因此,我的问题是:如何从整数结果到所需的双十六进制结果?我试了几个选择,都没有成功。 注意:我使用的是Qt,所以如果有人能找到实现QByteArray或其他Qt友好代码的解决方案,我会很高兴的。无论哪种方式,不使用Qt、C或C++的解决方案都是无用的:P

  • FF-源地址 53-数据 70-数据