📄 0.cpp
字号:
#include <iostream.h>
void main()
{
int a[100],b[50],i,L,X;
char l[100];
cout<<"进 行 编 码 请 在 X= 后 输 入 1."<<endl<<"进 行 验 码 检 错 请 在 X= 后 输 入 0."<<endl;
cout<<"X=";
cin>>X;
if(X==1)
{
cout<<"按(7,4)汉明码编码:"<<endl;
cout<<"输 入 信 息 序 列 的 长 度 L :( L 应 为 4 的 整 数 倍!)"<<endl;
cout<<"L= ";
cin>>L;
cout<<"输 入 二 进 制 信 息 序 列"<<endl;
for(i=1;i<=L;i++)
cin>>l[i];
cout<<endl;
for(i=1;i<=L;i++)
a[i]=(l[i]-48);
for(i=1;i<=(L/4);i++)
{
b[3*i-2]=(a[4*i-2]+a[4*i-1]+a[4*i])%2;
b[3*i-1]=(a[4*i-3]+a[4*i-1]+a[4*i])%2;
b[3*i]=(a[4*i-3]+a[4*i-2]+a[4*i])%2;
}
for(i=1;i<=L;i++)
{
cout<<a[i]<<" ";
if(i%4==0)
{
cout<<" ";
cout<<b[i/4*3-2]<<" "<<b[i/4*3-1]<<" "<<b[i/4*3];
cout<<endl;
}
}
}
if(X==0)
{
cout<<"对(7,4)汉明码检码:"<<endl;
cout<<"输 入 信 息 序 列 的 长 度 L :( L 应 为 7 的 整 数 倍!)"<<endl;
cout<<"L= ";
cin>>L;
cout<<"输 入 二 进 制 信 息 序 列"<<endl;
for(i=1;i<=L;i++)
cin>>l[i];
cout<<endl;
for(i=1;i<=L;i++)
a[i]=(l[i]-48);
for(i=1;i<=(L/7);i++)
{
b[3*i-2]=(a[7*i-5]+a[7*i-4]+a[7*i-3]+a[7*i-2])%2;
b[3*i-1]=(a[7*i-6]+a[7*i-4]+a[7*i-3]+a[7*i-1])%2;
b[3*i]=(a[7*i-6]+a[7*i-5]+a[7*i-3]+a[7*i])%2;
}
for(i=1;i<=L;i++)
{
cout<<a[i]<<" ";
if(i%7==0)
{
if((b[i/7*3-2]==0)&&(b[i/7*3-1]==1)&&(b[i/7*3]==1)) cout<<"第一位有错!"<<endl;
if((b[i/7*3-2]==1)&&(b[i/7*3-1]==0)&&(b[i/7*3]==1)) cout<<"第二位有错!"<<endl;
if((b[i/7*3-2]==1)&&(b[i/7*3-1]==1)&&(b[i/7*3]==0)) cout<<"第三位有错!"<<endl;
if((b[i/7*3-2]==1)&&(b[i/7*3-1]==1)&&(b[i/7*3]==1)) cout<<"第四位有错!"<<endl;
if((b[i/7*3-2]==1)&&(b[i/7*3-1]==0)&&(b[i/7*3]==0)) cout<<"第五位有错!"<<endl;
if((b[i/7*3-2]==0)&&(b[i/7*3-1]==1)&&(b[i/7*3]==0)) cout<<"第六位有错!"<<endl;
if((b[i/7*3-2]==0)&&(b[i/7*3-1]==0)&&(b[i/7*3]==1)) cout<<"第七位有错!"<<endl;
cout<<endl;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -