📄 hammingcode.java
字号:
// 用数组实现编码
import java.awt.*;
import java.io.*;
import java.lang.*;
public class HammingCode{
public static void main(String args[]){
int Sbefore[][][][]=new int[30][3][1][7];
int S[][][] =new int[30][3][1];
int ST[][][] =new int[30][1][3];
int HT[][][] =new int[ 7][1][3];
int nC[] =new int[30];
int counter,check,sign=0,finish;
int i,j,k,r;
int H[][][]={{{0,1,1,1,1,0,0}},
{{1,0,1,1,0,1,0}},
{{1,1,0,1,0,0,1}}};
int C[][][]={{{0,0,0,1,1,1,1}},{{1,0,0,1,1,1,1}},{{1,1,0,1,0,1,1}},
{{1,1,0,1,1,1,0}},{{1,0,0,0,1,0,0}},{{1,1,0,1,0,0,1}},
{{1,0,0,0,1,0,1}},{{1,0,0,1,1,1,1}},{{1,1,0,1,0,1,0}}};
int z[][] ={{1,3,5}};
int nColumn=999;
System.out.println("程序设计的理论基础是汉明码的定义");
for(r=0;r<C.length;r++){
System.out.print(" C["+r+"]=");
for(j=0;j<H[0].length;j++){
for(k=0;k<H[0][0].length;k++){
System.out.print(""+C[r][j][k]);
}
}
System.out.println();
}
for(i=0;i<H.length;i++){
counter=0;
for(j=0;j<H[0].length;j++){
for(k=0;k<H[0][0].length;k++){
HT[k][j][i]=H[i][j][k];
counter++;
// if(counter%3==0) System.out.print(" ");
}
}
// System.out.println("");
}
System.out.println();
System.out.println("??????H");
for(i=0;i<HT.length;i++){
counter=0;
System.out.print("H["+i+"]=");
for(j=0;j<HT[0].length;j++){
for(k=0;k<HT[0][0].length;k++){
HT[i][j][k]=H[k][j][i];
System.out.print(""+HT[i][j][k]);
counter++;
if(counter%3==0) System.out.print(" ");
}
}
System.out.println("");
}
for(r=0;r<C.length;r++){
for(i=0;i<H.length;i++){
counter=0;
// System.out.print("Sbefore["+r+"]["+i+"]=");
for(j=0;j<H[0].length;j++){
for(k=0;k<H[0][0].length;k++){
Sbefore[r][i][j][k]=H[i][j][k]&C[r][j][k];
// System.out.print(""+Sbefore[r][i][j][k]);
counter++;
// if(counter%7==0) System.out.print(" ");
}
}
// System.out.println("");
}
}
for(r=0;r<C.length;r++){
for(i=0;i<Sbefore[0].length;i++){
counter=check=0;
for(j=0;j<Sbefore[0][0].length;j++){
for(k=0;k<H[0][0].length;k++){
if(Sbefore[r][i][j][k]==1) check^=1;
}
S[r][i][j]=check;
}
}
}
System.out.println();
System.out.println("?????H");
for(i=0;i<C.length;i++){
counter=0;
System.out.print("S["+i+"]=");
for(j=0;j<ST[0].length;j++){
for(k=0;k<ST[0][0].length;k++){
ST[i][j][k]=S[i][k][j];
System.out.print(""+ST[i][j][k]);
counter++;
if(counter%3==0) System.out.print(" ");
}
}
System.out.println("");
}
for(r=0;r<C.length;r++){
// System.out.print(" S["+r+"]=");
for(i=0;i<S[0].length;i++){
counter=0;
for(j=0;j<S[0][0].length;j++){
// System.out.print(" S["+r+"]["+i+"]["+j+"]="+S[r][i][j]);
// System.out.print(""+S[r][i][j]);
counter++;
// if(counter%3==0) System.out.println();
}
}
System.out.println();
}
try{
System.in.read();
}
catch(Exception e){ }
for(r=0;r<C.length;r++){
finish=0;
for(k=0;k<H[0][0].length;k++){
sign=0; //
for(i=0;i<H.length;i++){
for(j=0;j<H[0].length;j++){
// System.out.println(" S["+r+"]["+i+"]["+j+"]="+S[r][i][j]);
}
}
}
}
try{
System.in.read();
}
catch(Exception e){ }
System.out.println("begin");
for(r=0;r<C.length;r++){
finish=0;
nColumn=999;
for(i=0;i<HT.length;i++){
// sign=0; //
for(j=0;j<HT[0].length;j++){
for(k=0;k<HT[0][0].length;k++){
System.out.println(" HT["+r+"]["+i+"]["+j+"]["+k+"]="+ST[i][j][k]);
if(HT[i][j][k]!=ST[r][j][k]){
sign=1;
break;
}
else sign=0;
}
if(sign==1){
finish=0;
break;
}
else finish=1;
}
if((finish==1)&&(i<HT.length)){
nColumn=i;
break;
}
}
if(nColumn>HT.length)
System.out.println(" No error receive=input");
else{
System.out.println("1 erroer occured in the position "+nColumn);
System.out.println("system has change it");
C[r][0][nColumn]^=1;
}
}
System.out.println(" ???????????H");
for(r=0;r<C.length;r++){
System.out.print(" C["+r+"]=");
for(j=0;j<H[0].length;j++){
for(k=0;k<H[0][0].length;k++){
System.out.print(""+C[r][j][k]);
}
}
System.out.println();
}
try{
System.in.read();
}
catch(Exception e){ }
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -