《计算机网络课程设计(第2版)》——2.4节课程设计分析-阿里云开发者社区

开发者社区> 华章计算机> 正文

《计算机网络课程设计(第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;       //清除低字节的进位

}

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《面向对象分析与设计》一导读
在20世纪90年代,面向对象技术以其显著的优势成为计算机软件领域的主流技术,随后该技术在大多数发达国家的软件开发中得到了相当广泛的运用。在我国的软件产业界,面向对象技术的学习与应用热潮出现于20世纪90年代后期,如今面向对象分析与设计技术也已经得到了广泛的应用。
972 0
C++程序设计课程师生互动(2012年春第9周)
  今天看完同学博客比较早,看空间的动态,同学们还在继续上传。从中午开始,不断地有同学上线,赶在19:00之前传完。今天看得比较粗,很多没有写总结的,我数个数也就过去了;对留了言的,由感而发对上两句;有人提出疑问是必定要解答的,甚至代码中的问题可能还需要我调试一下才能发言。   在拳场上,我们有个规矩:当徒弟的,该怎么练就怎么练,时候到了,师傅自然就会指点。徒弟要主动练,要主动接近师傅。
930 0
C++程序设计课程师生互动(2012年春第12周)
最大的感受是,一个五一春假,不少同学的状态似乎下滑。这也正常,我也在从综合症中恢复。下半学期开始了,我们要更加刻苦,为能力提高,顺便更有那个考试,还有,可恶的老贺,要加一次期中测验。 本周的任务中,开摩托比较好玩。理解继承中的一些问题本就不该是难题,经过任务,总体感觉同学们是掌握了。让同学纠结的求直线与圆的交点提醒我们:现在是运用以前掌握知识解决问题的时候了,温故而知新,圣人说得很对。
1113 0
《面向对象分析与设计》一3.7 例题
本节书摘来自华章出版社《面向对象分析与设计》一书中的第3章,第3.7节,作者 麻志毅,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1691 0
《算法设计编程实验:大学程序设计课程与竞赛训练教材》——3.3 积性函数的实验范例
本节书摘来自华章计算机《算法设计编程实验:大学程序设计课程与竞赛训练教材》一书中的第3章,第3.3节,作者:吴永辉,王建德著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1190 0
课程设计,文件加密
小提示,密码文件需要自己先创建一个txt文件自己输入6个字符密码,路径与代码的运行路径在一起。。。 /*题目:文件加密 文件的传输会有明文和密文的区别,明文发送时不安全的,用一个程序实现发送文件的加密和解密操作。
802 0
《计算机网络课程设计(第2版)》——1.4节课程设计要求及评分标准
本节书摘来自华章社区《计算机网络课程设计(第2版)》一书中的第1章,第1.4节课程设计要求及评分标准,作者:吴功宜 吴 英 ,更多章节内容可以访问云栖社区“华章社区”公众号查看
836 0
10059
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载