| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 502 人关注过本帖
标题:我只求高手进
只看楼主 加入收藏
剑人
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2005-9-21
收藏
 问题点数:0 回复次数:2 
我只求高手进

帮我解释一下下面的程序,谢谢! #include <cstdlib> #include <iostream> using namespace std;

int _tmain(int argc, _TCHAR* argv[]) { int H[3][7]= {{0,1,1,1,1,0,0}, {1,0,1,1,0,1,0}, {1,1,0,1,0,0,1}}; int X[7];

cout<<"press enter the Hamming code:"; cin>>X[0]>>X[1]>>X[2]>>X[3]>>X[4]>>X[5]>>X[6]; int y[3]; int Y[3]; int sum; int i,j;

int z[7]; int S[7]; for(i=0;i<3;++i) { sum=0; for(j=0;j<7;++j) { sum=sum + H[i][j]*X[j]; } y[i]=sum; } for(i=0;i<3;++i) Y[i]=y[i]&0x1;

sum=Y[0]+Y[1]+Y[2]; int Z[7]={0};

switch(sum) { case 0: break; case 1: if(Y[0]==1) Z[4]=1; if(Y[1]==1) Z[5]=1; if(Y[2]==1) Z[6]=1; break; case 2: if(Y[0]==0) Z[0]=1; if(Y[1]==0) Z[1]=1; if(Y[2]==0) Z[2]=1; break; case 3: Z[3]=1; break; } for(i=0;i<7;++i) { z[i]=X[i]+Z[i]; } for(i=0;i<7;++i) { S[i]=z[i]&0x1; } for(i=0;i<7;++i) cout<<S[i]; system("pause");

return 0; }

2005-09-21 23:27
jackrain
Rank: 1
等 级:新手上路
帖 子:182
专家分:0
注 册:2005-9-4
收藏
得分:0 
这个是海明码校验的程序。
程序大体流程如下:
1、要求输入海明码(7位的,4位的数据位,3位的校验位),存入X[]中
2、接着求出校验位存入Y[]中,然后根据校验位的和sum纠正数据位。
3、最后输出纠正后的海明码。

[此贴子已经被作者于2005-9-22 9:20:43编辑过]



程序和身体一样,健壮,再健壮! 我爱C++
2005-09-22 09:14
剑人
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2005-9-21
收藏
得分:0 
先说谢谢了!

我得先看看书,忘记海明码的内容了。

谢了~!
2005-09-22 10:45
快速回复:我只求高手进
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017316 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved