手动计算CRC和CRC软件计算为啥不一样?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手动计算CRC和CRC软件计算为啥不一样?相关的知识,希望对你有一定的参考价值。

按照CRC的原理手工计算验证CRC8但结果与验证工具对比不同,谁能告诉我具体错在哪里?

信息码: 0x01
多项式: X8+X5+X4+1

第一步: 0x01右边补8个0 二进制为 1 0 0 0 0 0 0 0 0,多项式为1 0 0 1 1 0 0 0 1.

第二步: 100000000 异或 100110001 得余数 1 1 0 0 0 1

因余数小于 生成多项式,那么 余数即为 CRC码 110001 16进制为0x31

但用了几个验证软件,算出来的都是 0x5e

谁能告诉我,我计算错在哪里?

参考技术A 以下答案来源于Beyond Compare中文网站,如果看了还是不清楚的话,可以去它的中文网站搜索一下相关的教程
1、CRC是什么看
CRC,全称Cyclic Redundancy Code,意为循环冗余码校验。它是利用除法及余数的原理来作错误侦测的。如果一对文件有不同的CRC,那么可以肯定的是它们的内容是不同的。如果他们有匹配的CRC,那么很有可能其内容匹配。除了读取每个文件的每个字节来计算CRC找出文件差异,Beyond Compare文件比较也可以使用二进制比较,快速找出文件的区别。
2、CRC和快照结合
当CRC与快照功能结合使用时,CRC的比较是最有用的。虽然快照无法容纳整个文件,但他们可以容纳CRC连同其他文件夹的数据。您可以针对与CRC校验快照比较实时数据,并相信,如果一个文件已被损坏你会发现它。
3、CRC和FTP服务器
CRC比较的行为取决于你连接到FTP服务器。如果FTP服务器支持,服务器将产生CRC,只传送CRC值。如果服务器不支持它, Beyond Compare软件文件比较需要传输整个文件并在本地计算CRC。如果你看到日志中的XCRC命令, 表明正在由服务器生成CRC值。

Beyond Compare 4 如何显示日志包括任何XCRC命令。
步骤一:打开Beyond Compare软件,选择需要比较的文件,单击菜单栏逗视图地选项卡,勾选逗日志地选项即可。

步骤二:单击逗工具地选项卡,选择逗选项地对话,在弹出的逗选项地窗口中,点击逗调整地按钮。在对应的逗日志面板地栏目中,勾选逗FTP跟踪逗复选框,确保启用了FTP跟踪选项。追问

这里我想知道x5e是怎么计算出来的,其他理论知识不需要。

以上是关于手动计算CRC和CRC软件计算为啥不一样?的主要内容,如果未能解决你的问题,请参考以下文章

CRC校验码原理实例手动计算

CRC32的计算方法

计算机网络CRC检验中为啥选择16或32位效验码,效率最高?

工控常用LRC XOR累加和CRC校验工具校验码自动生成软件多计算方式

crc32 — 计算一个字符串的 crc32 多项式?

CRC-16/MODBUS计算详细步骤