91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 9KB
    文件類型: .java
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-05-16
  • 語言: Java
  • 標簽: java??海明碼??

資源簡介

兩種不同的做法,用java實現(xiàn)海明碼,先輸入一個數(shù)據(jù),得到海明碼,在輸入海明碼,如果錯誤,則提示哪位出錯且糾正為正確的海明碼

資源截圖

代碼片段和文件信息

/**
*@author?xuanzerensheng
*/

方法一:
H1?H2?H3?H4?H5?H6?H7
P1?P2?D1?P3?D2?D3?D4
D4:P1?P2?P3????????P1:D4?D2?D1?????????C[0]:P1?D4?D2?D1??
D3:P3?P2???????????P2:D4?D3?D1?????????C[2]:P2?D4?D3?D1
D2:P3?P1???????????P3:D4?D3?D2?????????C[3]:P3?D4?D3?D2??
D1:P2?P1


import?java.util.Scanner;


public?class?Ham?{

Scanner?enter=new?Scanner(System.in);
String?s_data;???????????//輸入的字符串類型的數(shù)據(jù)
int?dlength;?????????????//輸入數(shù)據(jù)的長度
int[]?data;??????????????//將輸入的數(shù)據(jù)轉(zhuǎn)換成整型數(shù)據(jù)
int?hlength;????????????//海明碼長度
int[]?ham;??????????????//海明碼
int?plength;????????????//校驗位長度
int[]?p;????????????????//校驗位
int[]?c;????????????????//驗證出錯位數(shù)的數(shù)組

void?input(){
System.out.println(“輸入數(shù)據(jù):“);
String?s_data=enter.nextLine();
dlength=s_data.length();
data=new?int[dlength];
for(int?i=0;i data[i]=Integer.parseInt(s_data.substring(i?i+1));
//System.out.print(data[i]);
}
generateHam();
}

void?generateHam(){
int?i=1;?
int?label=1;?//指向海明碼的校驗位
int?k=data.length-1;????//指向數(shù)據(jù)位
while(Math.pow(2?i) i++;
}
plength=i;??//校驗位位數(shù)
p=new?int[plength];
c=new?int[plength];
//System.out.println(“plength?“+plength);
hlength=dlength+plength;
ham=new?int[hlength];

/*
?*?向海明碼中填寫數(shù)據(jù)位
?*/
for(int?j=0;j if(j+1==label){
ham[j]=0;
label*=2;
}else{
ham[j]=data[k--];
}
}
/*for(int?m=hlength-1;m>=0;m--){
System.out.print(ham[m]);
}*/

/*
?*?求海明碼中的校驗位
?*/
int?r;?//指向校驗位位數(shù)
int?sum=0;
for(i=hlength;i>0;i--){
for(r=plength-1;r>=0;r--){
if(i!=Math.pow(2?r)&&sum+Math.pow(2?r)<=i){
ham[(int)Math.pow(2?r)-1]=(ham[(int)Math.pow(2?r)-1]+ham[i-1])%2;
//p[r]=(p[r]+ham[i-1])%2;
sum=sum+(int)Math.pow(2?r);
}else{
if(i==Math.pow(2?r)){
break;
}
}
}
sum=0;
}

/*for(int?m=hlength-1;m>=0;m--){???
System.out.print(ham[m]);
}*/
System.out.print(“生成海明碼為:“);
for(int?m=0;m System.out.print(ham[m]);
}
System.out.println();
/*for(int?m=plength-1;m>=0;m--){??
System.out.print(p[m]);
}*/
}


void?group(){
int?i;

int?r;?//指向校驗位位數(shù)
int?sum=0;
for(i=hlength;i>0;i--){
for(r=plength-1;r>=0;r--){
if(i!=Math.pow(2?r)&&sum+Math.pow(2?r)<=i){
c[r]=(c[r]+ham[i-1])%2;
//p[r]=(p[r]+ham[i-1])%2;
sum=sum+(int)Math.pow(2?r);
}else{
if(i==Math.pow(2?r)){
c[r]=(c[r]+ham[i-1])%2;
break;
}
}
}
sum=0;
}
/*for(i=c.length-1;i>=0;i--){
System.out.print(c[i]);
}*/
?}

???void?check(){
????
???? int?sum=0;
????????
???? System.out.print(“提示處錯位:“);
???? for(int?i=c.length-1;i>=0;i--){??//輸出組信息
???? System.out.print(c[i]);
???? }
???? System.out.println();
???? for(int?i=0;i ???? sum=sum+(int)(c[i]*Math.pow(2?i));?//求出第幾位出錯
???? }
?//System.out.println(sum);
???? if(sum==0){
????

評論

共有 條評論