电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

CRC16算法及Java实现

6页
  • 卖家[上传人]:壹****1
  • 文档编号:498265534
  • 上传时间:2024-01-05
  • 文档格式:DOCX
  • 文档大小:50.80KB
  • / 6 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、计算机网络与通讯CRC报告CRC简介CRC的全称为Cyclic Redundancy Check,中文名称为循环冗余校验。它是一类重要的线性分组码,编码和解码方法简单,检错和纠错能力强,在通信领域广泛地用于实现差错控制。实际上,除数据通信外,CRC在其它很多领域也是大有用武之地的。例如我们读软盘上的文件,以及解压一个ZIP文件时,偶尔会碰到“Bad CRC”错误,由此它在数据存储方面的应用可略见一斑。差错控制理论是在代数理论基础上建立起来的。在数据通信系统中可靠与快速往往是一对矛盾。若要求快速,则必然使得每个数据码元所占的时间缩短、波形变窄、能量减少,从而在受到干扰后产生错误的可能性增加,传送信息的可靠性下降。若是要求可靠,则使得传送消息的速率变慢。因此,如何合理地解决可靠性与速度这一对矛盾,是正确设计一个通信系统的关键问题之一。为保证传输过程的正确性,需要对通信过程进行差错控制。CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。它的编译码设备比较简单, 用具有反馈的移位寄存器

      2、即可实现。它的检纠错能力也较强, 误判概率很低。CRC算法原理:CRC 校验码的基本思想是利用线性编码理论, 在发送端根据要传送的k 位信息码, 以一定的规则产生一个校验用的监督码( 即CRC 码) r 位, 并附在信息后边, 构成一个新的二进制码序列数共( k+ r ) 位, 最后发送出去。在接收端, 则根据信息码和CRC 码之间所遵循的规则进行检验,以确定传送中是否出错。例发送数据为M(x),信息校验位为r位,生成多项式为G(x)则生成校验码的过程为: 然后发送端将M(x) .xr + R(x)发送给接受端,接收端接收到数据以后执行以下除法(例接受端接受到数据位T(x)):若 R(x)即余数等于0,则检验成功,说明传输过程中没有错误。标准的CRC资料:信息码可用多项式表示,但在实际传输过程中,M(x)很大,无法用多项式表示。因此难点在于M(x).xr/G(x);除法电路: 这个除法中我们只关心余数, 这里采用 CRC-16 生成多项式为x16+x15+x2+1 转化为多项式为Ox8005g(x)= x16+x15+x2+1除法电路:除法电路为一个16位的寄存器,算法流程如下:(1)

      3、置寄存器初值为0.(2)取出寄存器中的最高位进行记录,设为int temp;(3)寄存器进行左移运算, 下一个信息位移入, 最高位移出.(4) 判断第(2) 步中移出的最高位(即第16位), 如果为1(temp=0x8000;), 则用寄存器与生成多项式异或的结果对寄存器重新赋值. 否则, 执行(5) .(5) 信息位为一个byte,名为data,如果还有信息位(包括附加的r个0) , 返回(2) , 否则结束.整个过程计算一个byte,循环8次;计算完一个byte以后再计算下一个;运算完毕后, 寄存器中存放的就是余数.Java程序实现public class CRC16 static int a=0x0000; int crc_16=0x8005; int temp=0; public void fileChoose(File file) throws FileNotFoundException, IOException FileInputStream in=new FileInputStream(file); byte byte1=new byte1024; while(in.read(byte1)!=-1) byte bt=byte1; for(int i=0;ibyte1.length;i+) div(bti); byte r=0; div(r); div(r); in.close(); public void div(byte d) /从文件里面读一个byte 名称为d for(int i=0;i8;i+) temp=a&0x8000; /取出寄存器第16位,判断寄存器第16位是0还是1 a=7;/data右移,为了把最后一位放入寄存器 a=numIn; /将data中选出来的哪一位放入寄存器最后一位 if(temp=0x8000)/判定temp第16位是0还是1,如果是0,寄存器 /与生成多项式异或 a=crc_16; data=1; /每计算一次,data左移一位,移8次算完 a&=0x0000ffff;/寄存器a选取后16位,只考虑一个int的后16位

      《CRC16算法及Java实现》由会员壹****1分享,可在线阅读,更多相关《CRC16算法及Java实现》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.