CRC循环冗余检验的纠错功能和代码实现_第1页
CRC循环冗余检验的纠错功能和代码实现_第2页
CRC循环冗余检验的纠错功能和代码实现_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、循环冗余检验的纠错功能和代码实现CRC 循环冗余检验的纠错功能和代码实现写这篇章呢,主要是想聊下CRC的纠错功能,虽然我们谈到CRC很少说到它的纠错功能,但不代表没有,因此写以记录下它的纠错功能以及如何java代码实现。给出java代码如下public static void main(String args) TestSystem.out.print( +i + +mistakeCRC);System.out.println( : +calculate(Integer.parseInt(mistakeCRC, 2),Integer .parseInt(gxStr, 2) dataStr.le

2、ngth() - 1,dataStr.length(),gxStr.length();/* param 信息进制data 成多项式gx 信息位长度dataStrLen 校验位长度gxStrLen* author wxc* return 余数* Description: 计算余数*/public String calculate(int data, int gx, int dataStrLen, int gxStrLen) /算出原始数据补零后的总位数int sum =dataStrLen +gxStrLen - 1;/计算2sum-1次幂BigInteger bi =new BigIntege

3、r(2);/2sum-1次幂转换为int型int flag =bi.pow(sum - 1).intValue();/循环dataStrLen次/关于为什么是dataStrLen,假设信息位位,成多项式是位,那么就是(K+R-1) - R + 1 = K,也就是信息位位数for (int i =0; i 1;/flag最位的1右移,较下位/解决Java输出进制时略去位零的问题如成多项式1011,那么需要补20,也就是的长度= 4-1while (.length() (gxStrLen - 1) while (.length() (gxStrLen - 1) /*public String ge

4、tCRC(String dataStr, String gxStr) /获取进制信息位的位数int dataStrLen =dataStr.length();/获取成多项式位数/将进制的字符串变为整型int data =Integer.parseInt(dataStr, 2);/将多项式的字符串变为整型int gx =Integer.parseInt(gxStr, 2);/算出原始数据补零后的总位数int sum =dataStrLen +gxStrLen - 1;/信息码低位补零/成多项式低位补零,使其与补零后的位数致,以便异或gx =gx (dataStrLen - 1);String C

5、RC =calculate(data, gx, dataStrLen, gxStrLen);CRC =dataStr +;/* param 循环冗余效验码CRC要更改的下标index* author wxc* return 更改某个位后的冗余码* Description:更改正确冗余码的某个位,得到错误的冗余码,也就是循环冗余码在传输过程中发位特的差错*/public String mistakeCRC(String CRC, int index) BigInteger bi =new BigInteger(2);/2sum-1次幂转换为int型int flag =bi.pow(index -

6、 1).intValue();int data =Integer.parseInt(, 2);int result =flag data;/解决Java输出进制时略去位零的问题String resultStr =Integer.toBinaryString(result);while (resultStr.length() = K+R的时候,CRC才具有纠错功能。且我们可以发现余数是每7个个循环,出错位1和出错位8的余数是样的,出错位2和出错位9的余数是样的,所以这也是为什么叫做循环冗余码的原因接下来我们再来说说为什么般我们不提及CRC的纠错功能,因为CRC般在计算机络中,在以太的MAC帧中,通常4字节的效验码(FCS)不但来检验MAC帧的数据部分,还来检验的地址、原地址和类型字段(601514)字节,信息位远远于校验位

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论