微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

计算英特尔十六进制扩展线性地址记录的校验和

如何解决计算英特尔十六进制扩展线性地址记录的校验和

我有记录十六进制记录:02000004000107。

我的翻译是02:没有数据字节; 00000:地址字段 04:记录类型扩展线性记录; 0001:地址的高 16 位。 07:预期校验和

我有计算校验和以验证记录良好的功能

无符号字符 chk = 02 + 00 + 00 + 01 chk = ~chk + 1 = 0xf9

我的校验和与记录中的预期校验和 07 不匹配。

我的疑问: a) 我对校验和的记录和数学的翻译好吗? b) 如果是,为什么计算的校验可能不匹配?这是否意味着记录不好?

解决方法

我认为您对字段的解释是正确的,您拒绝校验和也是如此。

该行所有字节的总和应为零(模 256)。

2 + 4 + 1 + 7 不等于 0,但 2 + 4 + 1 可以等于 7。

似乎产生该行的软件将所有字节相加并在校验和字段中写入总和,他们忘记将其取反。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。