⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0.cpp

📁 奇偶检验玛玛实现
💻 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 + -