1 / 5
文档名称:

汉明码编码实验报告.doc

格式:doc   大小:74KB   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

汉明码编码实验报告.doc

上传人:mh900965 2018/2/11 文件大小:74 KB

下载得到文件列表

汉明码编码实验报告.doc

文档介绍

文档介绍:汉明码实验报告
一、实验目的
实现汉明码纠错编码算法
二、实验步骤
1、判断是否执行程序
2、输入要查错的码字
3、分析输入的码字并输出码字
4、继续判断
三、源代码
#include<iostream>
using namespace std;
void input(int *a){
cout<<"请输入7位要查错的码字(输入一个数(0或1)就空格):"<<endl;
for(int i=0;i<7;i++)
cin>>a[i];
}
void analyze(int *a,int ht[7][3]){ //二维数组ht[7][3]调用之前一定要明确定义
int p[3]={0};
int q=0; //数据要初始化
int h[3][7];
int out[7];
for(int k=0;k<3;k++){
for(int i=0, j=0;j<7;i++,j++){
p[k]=p[k]+a[i]*ht[j][k];
p[k]=p[k]%2; //使数值小于2
}
if(p[k]==1){
q++;
}
}
cout<<"伴随式为: "<<p[0]<<p[1]<<p[2]<<endl;
if(q==2||q==3){
cout<<"一共有"<<q<<"位错误,超越了纠错范围"<<endl;
}
if(q==0){
cout<<"码字没有错误!!"<<endl;
cout<<"输出的码字为:";
for(int i=0;i<7;i++){
out[i]=a[i];
cout<<out[i];
}
cout<<endl;
}
if(q==1){
for(int i=0;i<3;i++){
for(int j=0;j<7;j++){
if((h[i][j]==p[0])&&(h[i+1][j]==p[1])&&(h[i+2][j]==p[2])){
cout<<"要查错的码字的第"<<j+1<<"位出错"<<endl;
a[j]=(a[j]+1)%2;
cout<<"输出的码字应为";
for(i=0;i<7;i++){
out[i]=a[i];
cout<<a[i];
}
cout<<endl;
}
}
}
}
}
void main(){
int H