关于二进制反码求和的问题

naturebe 2011-03-18 10:17:11
在看TCPIP详解,看到有关反码求和的问题,查资料的时候发现了,有的地方是说0+0=1,有的是0+0=0.
到底是哪一个呢?望牛人指点一下。。。
...全文
722 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
magowan 2012-01-07
  • 打赏
  • 举报
回复
看不懂
fjd2010 2011-05-31
  • 打赏
  • 举报
回复
如何判断溢出
rabbitjerry 2011-03-18
  • 打赏
  • 举报
回复
去维基百科上看看
naturebe 2011-03-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 masmaster 的回复:]

二进制加法逢二进一,0+0=0,1+0=1,1+1=10
二进制逻辑运算和算术运算不同
二进制反码就是做求反操作,1=》0,0=》1

楼主还是举出具体实例
[/Quote]

我是看书看到关于IP数据包的校验和的内容了,然后查找校验和的实现细节,网上面得说法不一啊。。

一个博客上的内容:http://renhl252.blog.163.com/blog/static/2122100720081018103249350/

《计算机网络》第四版 谢希仁 P256

注:两个数的二进制反码求和的运算规则:

1、从低位到高位逐列进行运算;

2、0+0=1,0+1=1,1+1=0(进位1加到下一列);

3、最高位相加产生的进位,要在最后的结果加1.


百度百科:
二进制反码求和
  0和0相加是0,0和1相加是1,1和1相加是0但要产生一个进位1,加到下一列.若最高位相加后产生进位,则最后得到的结果要加1.
  IP/ICMP/IGMP/TCP/UDP等协议的校验和算法都是相同的,算法如下:
  在发送数据时,为了计算IP数据包的校验和。应该按如下步骤:
  (1)把IP数据包的校验和字段置为0;
  (2)把首部看成以16位为单位的数字组成,依次进行二进制反码求和;
  (3)把得到的结果存入校验和字段中。
masmaster 2011-03-18
  • 打赏
  • 举报
回复
二进制加法逢二进一,0+0=0,1+0=1,1+1=10
二进制逻辑运算和算术运算不同
二进制反码就是做求反操作,1=》0,0=》1

楼主还是举出具体实例

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧