• 大小: 3KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-14
  • 语言: C/C++
  • 标签: 7.4汉明码  

资源简介

实现编码课程中经典编码7.4汉明码的代码实现

资源截图

代码片段和文件信息

//7.4汉明码编解码
#include
#include
using namespace std;
//编码函数
void bm()
{
int t=0xa[3]b[6]tempy=0;
    int G[4][7]={{1101000}{0110100}{1110010}{1010001}};//说明生成矩阵
    cout<<“编码----请输入4位二进制消息序列(列:1 1 1 1):“<    while(t<4)

cin>>x;
    if(x!=0&&x!=1)
{
cout<<“输入序列错误,请重新输入:“< t=0;
continue;
}
else
{
a[t]=x;
t++;
}
}//此循环消息输入

for(int i=0;i<7;i++)
{
temp=0;
for(int j=0;j<4;j++)
temp+=a[j]*G[j][i];
if(temp%2==0)
b[i]=0;
else 
b[i]=1;
}//与生成矩阵相乘,生成码字

cout<<“编码后的码字:“;
while(y<7)
{
cout< y++;
}
cout<}



//译码函数

void ym()

  int t=0b[7]s[3]e[7]tempxy=0m=3r=0;
  int H[7][3]={{100}{010}{001}{110}{011}{111}{101}};//校验矩阵
  cout<<“译码----请输入7位二进制码字序列(列:1 1 1 1 1 1 1 ):“<  while(t<7)
  { 
    cin>>x;
if(x!=0&&x!=1)
{
       cout<<“输入序列错误,请重新输入:“<    t=0;
       continue;
}
    else
{
   b[t]=x;
   t++;
 }
  }//此循环是序列输入
    for(int i=0;i<3;i++)
{
      temp=0;
  for(int j=0;j<7;j++)
  temp+=b[j]*H[j][i];
      if(temp%2==0)
    s[i]=0;
  else 
s[i]=1;
}//此循环计算校正子

e[0]=s[0]&(!s[1])&(!s[2]);//计算差错位
    e[1]=(!s[0])&s[1]&(!s[2])

评论

共有 条评论

相关资源