二进制反码求和运算(UDP或者IP检验和字段的计算)

在备考计算机网络的时候,关于udp二进制反码求和计算检验和的相关资料在网上和课本上都没有详细的解释,我参考了谢老师的课本注释,并且经过自己两个小时的手工计算和验证,总结了一个计算过程。(并不是自己胡编乱造,而是按照谢老师写的计算机网络第七版的注释总结得出)

1bad2ee52c8a4d8ab051832fab7fa733.png

二进制反码求和的规则和原码求和只有一点不同:最高位进位的时候要低位加1。

5119aafab4094a318778b17f9ef93a5a.png 

请看上图两个例子:

第一个例子,3+5=8,原码和反码计算都可以,转十进制数值一样。 

第二个例子,8+9=17,原码溢出,只看低四位十进制为1,反码未溢出,低四位十进制为2,相差一个1。

总结:

1️⃣原码求和和反码求和在原码不溢出的情况下,原码求和结果取反即为反码求和结果。

2️⃣原码求和和反码求和在原码溢出的情况下,原码低位加1,取反后即为反码求和结果。

3️⃣二进制反码求和运算完全可以用二进制原码求和运算代替(课本上也是这样做的):原码求和,过程中只要出现溢出,就低位加一,然后继续求和,以此类推。最后的结果取反,即为二进制反码求和运算的结果。

如下图,是王道2025计算机网络关于udp首部校验和的计算过程,我已经用铅笔把计算过程写到书上了,圆圈⭕里面是进位和相应的低位加1,最后的结果和书上的结果一致。de595ea9e2c64c75ba9ca7552e6ebf46.png

仅为个人看法,未经允许请勿转载!

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值