gpt4 book ai didi

c - 0 - 0 的补码

转载 作者:太空宇宙 更新时间:2023-11-03 23:41:19 26 4
gpt4 key购买 nike

作为背景,我正在尝试为存储在常量内存中的 IP 数据包计算校验和(无法就地修改)。在执行校验和之前,我应该假装数据包中现有的校验和为 0。而不是将所有数据复制到临时缓冲区并存储 0,我想对整个数据包进行校验和,然后减去结果中的现有校验和。

为此,我一直在寻找我找到的减法的补码版本 here .不幸的是,如果我使用它,并从 0 中减去 0,我得到 0x1111 而不是预期的 0:

  1. 将 0 转换为补码:[1111]
  2. 接下来,我们添加 0:[1111]
  3. 没有溢出位,所以我们完成了...

我本以为 0 - 0 是 0 -- 我错过了什么?

最佳答案

你不需要减法。

如果校验和有效,则计算整个数据包的校验和(包括校验和)应该为 0。如果结果不为 0,则数据包已损坏。

这就是路由器验证校验和的方式。

关于c - 0 - 0 的补码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44441138/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com