您的当前位置:首页正文

信息论与编码理论实验报告

2021-09-17 来源:东饰资讯网

信息论与编码理论实验报告

题目:汉明编码

班级:信息安全二班

姓名:吴用

一、题目:

汉明编码

二、实验要求

用汉明编码实现对信源的编码

三、实验步骤

程序使用方法

运行程序,先输入所要编码的个数,然后一次输入一个字符作为信源名,以及一个信源的概率,即可得编码

四、源程序

include

include

voidhanming()

inti,_,k=2;

inth[20];

for(i=0;i<20;i++)h[i]=0;

cout<<"请输入要转换的有效位的位数"<

cin>_;

while(pow(2,k)

cout<<"请输入要转换的有效码字"<

if(i!=1i!=2i!=4i!=8)cin>h[i];}

h[1]=(h[3]+h[5]+h[7]+h[9]+h[11]+h[13]+h[15])%2;h[2]=(h[3]+h[6]+h[7]+h[10]+h[11]+h[14]+h[15])%2;h[4]=(h[5]+h[6]+h[7]+h[12]+h[13]+h[14]+h[15])%2;h[8]=(h[9]+h[10]+h[11]+h[12]+h[13]+h[14]+h[15])%2;for(i=1;i=_+k;i++)cout<

intjiaoyan(inth[],intn)

inti,p1,p2,p4,p8,q;

inth[20];

for(i=0;i

for(i=n+1;i<20;i++)h[i]=0;

if(n==3){

p1=(h[1]+h[3])%2;

p2=(h[2]+h[3])%2;

q=2p2+p1;

returnq;

if(n>=5n==7){

p1=(h[1]+h[3]+h[5]+h[7])%2;

p2=(h[2]+h[3]+h[6]+h[7])%2;

p4=(h[4]+h[5]+h[6]+h[7])%2;

q=4p4+2p2+p1;

returnq;

if(n>=9n==15){

p1=(h[1]+h[3]+h[5]+h[7]+h[9]+h[11]+h[13]+h[15])%2;p2=(h[2]+h[3]+h[6]+h[7]+h[10]+h[11]+h[14]+h[15])%2;p4=(h[4]+h[5]+h[6]+h[7]+h[12]+h[13]+h[14]+h[15])%2;p8=(h[8]+h[9]+h[10]+h[11]+h[12]+h[13]+h[14]+h[15])%2;q=8p8+4p4+2p2+p1;

returnq;

else{

cout<<"!!!!查错错误!!!!"<

return-1;

voidmain()

hanming();

intcoco;

inti,n,j,h[20];

cout<

cout<<"请输入要查错的码字的位数"<

cin>n;

cout<<"请输入要查错的码字(每输入一位按一次回车)"<h[i];

j=jiaoyan(h,n);

if(j==0)cout<<"码字没有错误"<

if(j!=0)cout<<"错误的位数是:"<

cout<

cin>coco;

五、心得

由于对编程语言掌握的比较不够熟练,所以在编码过程碰到了许多问题,得重温知识,深刻去理解,还有就是对汉XX没能真正领悟的情

况下操作起来顾此失彼,往往达不到实验结果,觉得还是要对知识牢固的掌握才行!

因篇幅问题不能全部显示,请点此查看更多更全内容