海明码和CRC校验的C语言实现.doc

海明码和CRC校验的C语言实现.doc

ID:20799334

大小:96.50 KB

页数:8页

时间:2018-10-16

海明码和CRC校验的C语言实现.doc_第1页
海明码和CRC校验的C语言实现.doc_第2页
海明码和CRC校验的C语言实现.doc_第3页
海明码和CRC校验的C语言实现.doc_第4页
海明码和CRC校验的C语言实现.doc_第5页
资源描述:

《海明码和CRC校验的C语言实现.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、海明码和CRC校验的C语言实现1.海明码//codebyzxf2010.4.10#include#include#include//N代表待编码数据的上限位数#defineN100intHmLength(intk);//计算海明码校验位位数voidInCode(char*data,char*c,intk,intr);//计算海明码每个校验位的数值voidmain(){intk=0,r=0,dnum=0,cnum=0;chardata[N];charc[N];clrscr();printf("Nowpl

2、easeinputthedatayouwanttoIncode:");for(k=0;k

3、",k,r,r+k);//输出海明码相关位数信息InCode(data,c,k,r);//计算海明码printf("TheHammingcodeis:");for(intj=1;j

4、idInCode(char*data,char*c,intk,intr){for(inti=0;i

5、积dnum++;//记录数据的循环位数}}c[i]=sum%2==0?'0':'1';//通过结果的奇偶设置校验位的值}}/**@func:计算校验码的位数*@param:k数据长度*@return:校验码位数*codebyzxf*/intHmLength(intk){intr=0,flag=1;while(flag!=0)//循环到2^r-1>=r+K时即得到校验码的位数{inttemp=0;temp=pow(2,r);temp=temp-1;flag=(temp-r-k<0);r++;}returnr-1;}程序演示:计算1100计算1000001

6、计算10101010101010101010101010101010101010CRC校验//codebyzxf2010.4.10#include#include#include//N代表待编码数据的上限位数#defineN100voidInputBinary(char*data);//输入二进制intDelZero(char*data);//去掉二进制字符串前面的零位intDiv(char*data,char*div);//进行一次模2除法voidmain(){chardatacpy[N];ch

7、ardata[N];chardiv[N];charres[N];intreslen=0;clrscr();printf("nowpleaseinputthedata:");InputBinary(data);//输入Mprintf("nowpleaseinputthediv:");InputBinary(div);//输入除数DelZero(data);DelZero(div);//取得有效的M和除数strcpy(datacpy,data);//备份Mprintf("Theeffectivedatais:%s",data);printf("

8、Theeffectivedivis:%s",div);for(inti=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。