《计算机网络课程设计(第2版)》——2.4节课程设计分析
2.4 课程设计分析
校验和的计算过程主要分为三个步骤:数据文件的输入、校验和的计算和校验结果的输出。其中,主要的是数据的输入和校验和的计算。
- 数据的输入方式
输入数据可能是以字符形式存储的,而校验和的计算则要采用数据形式,所以在从文件读取数据时,都要进行字符到数据的相互转换。
1) 将读入的ASCII码转化为相应的整型变量。
if(ch>='0'&&ch<='9')ch-='0';
else
{if(ch>='a'&&ch<='f')ch=ch-'a'+10;elseif(ch>='A'&&ch<='F')ch=ch-'A'+10;
}
2) 在使用C++编程时直接使用16进制的方式打开输入文件。
ifstream in(argv[1],ios::nocreate);
in.setf(ios::hex);
- 校验和的计算
校验和算法是本程序的核心部分,在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版)》——2.4节课程设计分析相关推荐
- 火车时刻表C语言报告,终稿火车订票系统的设计与实现课程设计.doc最终版(范文1)...
<火车订票系统的设计与实现课程设计.doc>由会员分享,可免费在线阅读全文,更多与<(终稿)火车订票系统的设计与实现课程设计.doc(最终版)>相关文档资源请在帮帮文库(www ...
- 重言式判别c语言中文网,重言式判别 重言式判别源码及课程设计 c语言版.doc
重言式判别 重言式判别源码及课程设计 c语言版 重言式的判别 题目: 一个逻辑表达式如果对于其変元的任一种取值都为真,则称为重言式:反之,如果对于其变元的任一种取值都为假,则称为矛盾式:然而,更多的情 ...
- Java课程设计(2020版)
目录 参考资料 一. 题目选择说明 1. 传统题目 2. 综合性题目(有一定挑战性.有趣.实用) 2.1题目特点: 2.2 常见类库与技术参考资料 2.2.1 jsoup 2.2.2 HttpComp ...
- c语言课程设计之黑白棋游戏,c语言课程设计黑白棋游戏.doc
您所在位置:网站首页 > 海量文档  > 学术论文 > 大学论文 c语言课程设计黑白棋游戏.doc26页 本文档一共被 ...
- c语言课程设计找出肇事车牌,C语言课程设计报告.doc
C语言课程设计报告 <C语言程序设计> 课程设计报告 (学年 第 学期) 专 业: 班 级: 姓名学号: 姓 名: 指导教师: 成 绩: 目 录 一.课程设计的目的与要求--------- ...
- c语言课程设计文本编辑器实验报告6,C课程设计简易文本编辑器.doc
C课程设计简易文本编辑器 目录 第一章 课程设计目的和要求1 1.1课程设计的目1 1.2 基本要求1 第二章 课程设计任务内容2 2.1 设计背景2 2.2简易文本编辑器设计内容2 第三章 详细设计 ...
- c语言课程设计作业红白球,c语言课程设计报告.doc
<c语言课程设计报告.doc>由会员分享,可在线阅读,更多相关<c语言课程设计报告.doc(28页珍藏版)>请在装配图网上搜索. 1.C程序设计课程设计学 院: * 专 业: ...
- c语言课程设计猜数字游戏报告,C语言课程设计猜数字游戏报告
C语言课程设计猜数字游戏报告 C 语言课程设计----猜数字1摘 要该 软 件 在 Windows 系 统 上 为 玩 家 提 供 猜 数 字 游 戏的 基 本 功 能 , 游 戏 用 户 可 以 选 ...
- C 语言课程设计 最终答辩版 学生通讯录管理系统
<span style="font-family: Arial, Helvetica, sans-serif;">/*</span> *********** ...
- 万年历单片机课程设计百度文库_单片机电子万年历课程设计最终版(样例3)...
<单片机电子万年历课程设计.doc>由会员分享,可免费在线阅读全文,更多与<单片机电子万年历课程设计(最终版)>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库 ...
最新文章
- python个人项目-个人博客二|创建项目
- Hystrix断路器(五)
- Android Spinner值不显示,选择列表正常
- 如何用html绘制阴影图形,HTML5 给图形绘制阴影
- SAP Cloud for Customer(C4C)前台显示的数据是如何从后台读取的
- 可编程CDN – EdgeScript应用场景、语言速览和实操演示
- linux脚本怎怎么屏蔽段落,怎么写shell脚本才能不耍流氓?
- HDU 1222 Wolf and Rabbit
- 设计模式学习笔记(5) - 策略模式
- socket的tcp连接中的监听套接字和已连接套接字
- 用友业务单据生成凭证如何修改凭证金额
- 中兴新支点操作系统上的文件小贴士
- android自定义view设置背景颜色,Android View的几种背景颜色设置
- 全球与中国云浏览器隔离市场深度研究分析报告
- Minecraft 1.19.2 Fabric模组开发 13.自定义村民
- 品达通用权限系统(Day 1~Day 2)
- 设计模式(三)代理设计模式
- 应用层的HTTP和HTTPS
- 5万块钱的笔记本,没能让苹果“炸场”
- 蠕虫病毒html,HTML 感染 DropFileName = “svchost.exe” Ramnit 蠕虫病毒 查杀解决办法