networking - 找到校验和

标签 networking network-programming binary udp checksum

我们有三个 16 位字:

0110011001100000
0101010101010101
1000111100001100

前两项之和

0110011001100000
0101010101010101
-----------------
1011101110110101

将总和添加到第三个

1000111100001100
1011101110110101
-------------------
10100101011000001

但是书上说这部分是:

0100101011000010

它说最后添加的内容有溢出,但我不明白。

之后它获得第一个补码:

1011010100111101

成为校验和。

我不明白将总和添加到第三部分。谁能解释一下吗?

最佳答案

这里将总和添加到第三个值。

注意缩进。溢出位是最左边位。

 1000111100001100
 1011101110110101
-----------------
10100101011000001
^

将溢出添加到截断结果中:

 0100101011000001
 0000000000000001
-----------------
 0100101011000010

这是该步骤所需的结果。

关于networking - 找到校验和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15391991/

相关文章:

networking - 时分复用带宽

objective-c - 处理中断的音频文件下载

c - 位操作 - 理解将负数乘以分数时向零偏差舍入

ajax - 转换图像数据以在浏览器中呈现图像

python - 十进制转二进制的python算法

python - 在Python中打包和解包浮点值

c++ - Qt - QLocalSocket 信号槽不工作导致析构函数中的死锁

c++ - 需要一个用 C/C++ 或 Python 进行 HTTP/HTML 网络编程的库

c - 使用hostapd在linux中以编程方式无线接口(interface)RSSI(信号强度)编号?

ios - 当分配的IP恰好相同时网络状态变化通知