私はランダムな1と0のintを持つtab [110]配列を持っているので、1001111001011110 ...など、配列の終わりまで続きます。ハミング コードに従って、7 つの異なるビット行を出力しようとしています。私のループは機能しますが、配列内のインデックスが 2,4,8,16 であるビットから始まるグループに対してのみ機能します。32 番目のループではそれらの半分がカットされ (したがって、32 からではなく 64 から出力が開始されます)、グループ 64 は完全にスキップされます。
int x=0;
int sum=0;
int pointer=0;
boolean w = true;
System.out.println("Grupy Bitow Parzystych");
for (int i=2; i<=7; i++)
{
System.out.println("\n");
switch(i)
{
//case 1: pointer=1;
case 2: pointer=2;
break;
case 3: pointer=4;
break;
case 4: pointer=8;
break;
case 5: pointer=16;
break;
case 6: pointer=32;
break;
case 7: pointer=64;
break;
default: System.out.println("DEFAULT SWiTCH");
break;
}
sum=0;
x=0;
for (int p=0; p<tab.length; p++)
{
if (p==0) System.out.println("Grupa bitow: "+pointer);
if (p<=pointer-1) continue;
x++;
if (x == pointer)
{
x = 0;
w = !w;
}
if (p%20==0) System.out.println("");
if (w)
{
iterator = p+1;
System.out.print(tab[p]+"("+iterator+")"+",");
sum++;
}
if (p==tab.length-1) System.out.println("Suma bitow pary "+pointer+": "+sum);
}
}