当前位置:  开发笔记 > 编程语言 > 正文

如何计算十六进制文件中的校验和?

如何解决《如何计算十六进制文件中的校验和?》经验,为你挑选了1个好方法。

如标题所示,我很想知道如何计算校验和,从我读到的使用2s补码计算得出的值开始。以下是已加载到我的微控制器上的十六进制文件的2行,我添加了空格以使其更易于阅读,S315出现在每一行上,第1行的地址为080C0000,后跟16个十六进制值,代表字节,我假设第1行的AA值和第2行的AB值是校验和值。

对于第1行,我尝试添加以下内容15+08+0C+00+00+4D+53+53+70+6F+74+31+00+66+10+AE+19+7E+63+1F+78,从而得到555十六进制或?010101010101?二进制格式。我已经将二进制值输入到在线2s补码计算器中,但始终显示“无效二进制”?

S3 15 080C0000 4D 53 53 70 6F 74 31 00 66 10 AE 19 7E 63 1F 78 AA

S3 15 080C0010 00 00 00 00 45 85 63 EB FF FF FF FF 04 00 03 00 AB



1> jksoegaard..:

像完成操作一样,添加字节值。从该总和中,您仅获得最低有效字节。

然后对于摩托罗拉HEX(SREC):然后,通过反转其位(即1s变为0,反之亦然)来获取该字节的补码。

然后对于Intel HEX:然后,通过反转该字节的位(即1s变为0,反之亦然)来获取该字节的二进制补码,然后加1。

以您的示例为例,您的总和为0x555。然后取最低有效字节,即0x55。

对于Motorola HEX(SREC):计算其补码。您将获得0xAA作为校验和。

对于Intel HEX:计算两者的补数。您将获得0xAB作为校验和。

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有