- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络实验报告_crc.
实验目的
掌握CRC校验算法
实验内容
1.设计CRC校验算法(生成项为x^16+x^15+x^2+1/)。
2.编程实现CRC校验。
实验前的准备
了解CRC校验码计算方法。
掌握相关软件编程知识。
实验要求及实验软硬件环境
【基本要求】
设计程序完成CRC校验,该程序可完成对文件的CRC校验码计算:该程序输入为待校验文件名。输出为校验码
完成此项实验,完成实验报告。
【实验组织方式】
个人实验
【实验条件】
微机与编程软件。
实验步骤
基础理论知识
CRC检错方法的工作原理是:将要发送的数据比特序列当做一个多项式f(x)的系数,在发送端用收发双方预先约定的生成多项式G(x)去除,求得一个余数多项式。将余数多项式加到数据多项式后发送到接收端。在接收端,用同样的生成多项式G(x)去除接收数据多项式f’(x)得到计算余数多项式。如果计算余数多项式与接收余数多项式相同,表示传输无差错;否则,表示传输有差错,由发送方重发数据,直至正确为止。⑴f(x)=1000110100,G(x)= x^16+x^15+x^2+1
CRC校验码的生成过程:
① 发送数据比特序列为100。
②生成多项式比特序列为11000000000000101。
③将发送数据比特序列乘以216,那么产应为生的乘积0000000000000000。
④ 将乘积用生成多项式比特序列去除,求得余数比特序列为110010111000。⑤ 将余数比特序列加到乘积中,得10001101000000110010111000。
⑥ 如果在数据传输过程中没有发生错误,接收端收到的带有CRC校验码的数据比特序列一定能被相同的生成多项式整除,即余数等于0。说明数据传输正确。
⑵f(x)= 1100001101, G(x)= x^16+x^15+x^2+1
CRC校验码的生成过程:
① 发送数据比特序列为1100001101。
② 生成多项式比特序列为11000000000000101。
③将发送数据比特序列乘以216,那么产应为生的乘积11000011010000000000000000。
④ 将乘积用生成多项式比特序列去除,求得余数比特序列为1000101000101101。
⑤ 将余数比特序列加到乘积中,得11000011011000101000101101。⑥如果在数据传输过程中没有发生错误,接收端收到的带有CRC校验码的数据比特序列一定能被相同的生成多项式整除,即余数等于0。说明数据传输正确。VC++6.0是Microsoft公司推出的一个基于Windows系统平台、可视化的集成开发环境,它的源程序按C++语言的要求编写,并加入了微软提供的功能强大的MFC(Microsoft Foundation Class)类库。MFC中封装了大部分Windows API函数和Windows控件,它包含的功能涉及到整个Windows操作系统。MFC不仅给用户提供了Windows图形环境下应用程序的框架,而且还提供了创建应用程序的组件,这样,开发人员不必从头设计创建和管理一个标准Windows应用程序所需的程序,而是从一个比较高的起点编程,故节省了大量的时间。另外,它提供了大量的代码,指导用户编程时实现某些技术和功能。因此,使用VC++提供的高度可视化的应用程序开发工具和MFC类库,可使应用程序开发变得简单。
vc++6.0的调试功能
调试重要的几个键:
F9在当前光标所在的行下断点如果当前行已经有断点则取消断点
F5调试状态运行程序程序执行到有断点的地方会停下来
F10单步执行程序
CTRL+F10运行到光标所在行
F11和F10的区别是,如果当前执行语句是函数调用,则会进入函数里面
SHIFT+F11跳出当前所在函数
调试的步骤:
保存为c或c++文件
⑵根据断点调试找到错误处。
采用F10或F11单步调试找到精确的错误处。其中f10是跳过函数调用,F11是进入函数体调试。一般是先用F10,确定函数输入输出是否正确(与自己想的一样),如不一样,则用F11进入函数体一步一步调试。
⑷在调试过程中,肯定得监视程序中的变量。在vc++6.0的右下角有一个watch窗口,专门用来设置监视变量。具体怎样设置自己体会吧。在调试过程中,鼠标轻轻放在变量上也会显示该变量的值
⑸vc6.0专门为调试设置了工具箱以方便调试的进行,打开的方法如下。右键--在debug(或调试)选择项的勾勾上。程序的序行结果为:
⑴请输入由0和1组成的报文:1
使用生成多项式:x^16+x^15+x^2+1
传输的报文:10001101000000110010111000验证:正确
修改位:0
⑵请输入由0和1组成的报文:1100001101
使用生成多项式:x^16+x^15+x^2+1
传输的报文:1100001
文档评论(0)