《计算机网络课程设计(第2版)》——2.4节课程设计分析

简介: 本节书摘来自华章社区《计算机网络课程设计(第2版)》一书中的第2章,第2.4节课程设计分析,作者:吴功宜 吴 英 ,更多章节内容可以访问云栖社区“华章社区”公众号查看

2.4 课程设计分析
校验和的计算过程主要分为三个步骤:数据文件的输入、校验和的计算和校验结果的输出。其中,主要的是数据的输入和校验和的计算。

  1. 数据的输入方式
    输入数据可能是以字符形式存储的,而校验和的计算则要采用数据形式,所以在从文件读取数据时,都要进行字符到数据的相互转换。

1) 将读入的ASCII码转化为相应的整型变量。

if(ch>='0'&&ch<='9')
    ch-='0';
else
{
    if(ch>='a'&&ch<='f')
       ch=ch-'a'+10;
    else
       if(ch>='A'&&ch<='F')
          ch=ch-'A'+10; 
}
2) 在使用C++编程时直接使用16进制的方式打开输入文件。
ifstream in(argv[1],ios::nocreate);
in.setf(ios::hex);
  1. 校验和的计算
    校验和算法是本程序的核心部分,在2.5节中我们将介绍一些相关的算法,而应用最为普遍的是端循环进位法。

端循环进位的算法如下:将数据按一定数位进行累加,最高位的进位则循环加入最低位。待校验的数据按16位为一个单位相加,采用端循环进位,最后对所得16位的数据取反码。因为待校验的数据是以字节方式分隔的,所以为了方便,将16位的数据分成高8位和低8位分别处理。该算法的代码如下:

endaroundcarry(int& highbyte,int & lowbyte)
{
    while(highbyte>0xff||lowbyte>0xff) //高8位或低8位中的任何一方产生溢出(进位)
    {
        lowbyte+=(highbyte>>8);     //低字节加上高字节超过8位的进位
        highbyte=highbyte&0xff;     //清除高字节的进位
        highbyte+=(lowbyte>>8);     //高字节加上来自低字节的进位
        lowbyte=lowbyte&0xff;       //清除低字节的进位

}
相关文章
|
2月前
|
机器学习/深度学习 编解码 计算机视觉
【APFN】从大佬论文中探索如何分析改进金字塔网络
【APFN】从大佬论文中探索如何分析改进金字塔网络
45 0
|
2月前
|
机器学习/深度学习 分布式计算 资源调度
【社交网络分析】课程考试复盘 + 相关资料补充
【社交网络分析】课程考试复盘 + 相关资料补充
53 0
|
1月前
|
监控 Shell Linux
【Shell 命令集合 网络通讯 】Linux 分析串口的状态 statserial命令 使用指南
【Shell 命令集合 网络通讯 】Linux 分析串口的状态 statserial命令 使用指南
33 0
|
9天前
|
机器学习/深度学习 数据可视化 测试技术
深度学习:Keras使用神经网络进行简单文本分类分析新闻组数据
深度学习:Keras使用神经网络进行简单文本分类分析新闻组数据
21 0
|
9天前
|
Python 数据可视化 索引
PYTHON用GARCH、离散随机波动率模型DSV模拟估计股票收益时间序列与蒙特卡洛可视化
PYTHON用GARCH、离散随机波动率模型DSV模拟估计股票收益时间序列与蒙特卡洛可视化
24 0
PYTHON用GARCH、离散随机波动率模型DSV模拟估计股票收益时间序列与蒙特卡洛可视化
|
9天前
|
机器学习/深度学习 算法 数据可视化
用SPSS Modeler的Web复杂网络对所有腧穴进行关联规则分析3
用SPSS Modeler的Web复杂网络对所有腧穴进行关联规则分析3
17 0
用SPSS Modeler的Web复杂网络对所有腧穴进行关联规则分析3
|
9天前
|
存储 算法 前端开发
R语言中贝叶斯网络(BN)、动态贝叶斯网络、线性模型分析错颌畸形数据
R语言中贝叶斯网络(BN)、动态贝叶斯网络、线性模型分析错颌畸形数据
30 0
|
10天前
|
数据可视化 网络可视化
R语言混合图形模型MGM的网络可预测性分析
R语言混合图形模型MGM的网络可预测性分析
10 0
|
10天前
|
算法 定位技术 Windows
R语言最大流最小割定理和最短路径算法分析交通网络流量拥堵问题
R语言最大流最小割定理和最短路径算法分析交通网络流量拥堵问题
15 4
|
11天前
|
机器学习/深度学习 资源调度 数据可视化
使用Python和Keras进行主成分分析、神经网络构建图像重建
使用Python和Keras进行主成分分析、神经网络构建图像重建
13 1