📄 b.java
字号:
// Decompiled by DJ v3.9.9.91 Copyright 2005 Atanas Neshkov Date: 12/6/2006 9:44:44 AM
// Home Page : http://members.fortunecity.com/neshkov/dj.html - Check often for new version!
// Decompiler options: packimports(3)
package jp.sourceforge.qrcode.ecc;
public final class b
{
public b(boolean aflag[])
{
a = b();
b = aflag;
}
public final boolean[] a()
{
int ai[] = a(b);
int ai1[] = c(ai);
boolean aflag[];
return aflag = a(b, ai1);
}
private int[][] b()
{
a = new int[16][4];
int ai[] = {
1, 1, 0, 0
};
for(int i = 0; i < 4; i++)
a[i][i] = 1;
for(int j = 0; j < 4; j++)
a[4][j] = ai[j];
for(int k = 5; k < 16; k++)
{
for(int l = 1; l < 4; l++)
a[k][l] = a[k - 1][l - 1];
if(a[k - 1][3] != 1)
continue;
for(int i1 = 0; i1 < 4; i1++)
a[k][i1] = (a[k][i1] + ai[i1]) % 2;
}
return a;
}
private int a(int ai[])
{
int i;
for(i = 0; i < 15 && (ai[0] != a[i][0] || ai[1] != a[i][1] || ai[2] != a[i][2] || ai[3] != a[i][3]); i++);
return i;
}
private int a(int i, int j)
{
int ai[] = new int[4];
for(int k = 0; k < 4; k++)
{
int l = i >= 0 && i < 15 ? a[i][k] : 0;
int i1 = j >= 0 && j < 15 ? a[j][k] : 0;
ai[k] = (l + i1) % 2;
}
return a(ai);
}
private int[] a(boolean aflag[])
{
int ai[] = new int[5];
int ai1[] = new int[4];
for(int i = 0; i < 15; i++)
{
if(!aflag[i])
continue;
for(int k = 0; k < 4; k++)
ai1[k] = (ai1[k] + a[i][k]) % 2;
}
int j = a(ai1);
ai[0] = j < 15 ? j : -1;
ai[1] = ai[0] >= 0 ? (ai[0] * 2) % 15 : -1;
ai1 = new int[4];
for(j = 0; j < 15; j++)
{
if(!aflag[j])
continue;
for(int l = 0; l < 4; l++)
ai1[l] = (ai1[l] + a[(j * 3) % 15][l]) % 2;
}
j = a(ai1);
ai[2] = j < 15 ? j : -1;
ai[3] = ai[1] >= 0 ? (ai[1] * 2) % 15 : -1;
ai1 = new int[4];
for(j = 0; j < 15; j++)
{
if(!aflag[j])
continue;
for(int i1 = 0; i1 < 4; i1++)
ai1[i1] = (ai1[i1] + a[(j * 5) % 15][i1]) % 2;
}
j = a(ai1);
ai[4] = j < 15 ? j : -1;
return ai;
}
private int[] b(int ai[])
{
int ai1[];
(ai1 = new int[4])[0] = ai[0];
int i = (ai[0] + ai[1]) % 15;
int j;
j = (j = a(ai[2], i)) < 15 ? j : -1;
i = (ai[2] + ai[1]) % 15;
int k;
k = (k = a(ai[4], i)) < 15 ? k : -1;
ai1[1] = k >= 0 || j >= 0 ? ((k - j) + 15) % 15 : -1;
i = (ai[1] + ai1[0]) % 15;
int l = a(ai[2], i);
i = (ai[0] + ai1[1]) % 15;
ai1[2] = a(l, i);
return ai1;
}
private int[] c(int ai[])
{
int ai1[] = b(ai);
int ai2[] = new int[4];
if(ai1[0] == -1)
return ai2;
if(ai1[1] == -1)
{
ai2[0] = 1;
ai2[1] = ai1[0];
return ai2;
}
for(int l1 = 0; l1 < 15; l1++)
{
int i = (l1 * 3) % 15;
int j = (l1 * 2) % 15;
int k = l1;
int l = (ai1[0] + j) % 15;
int i1 = a(i, l);
l = (ai1[1] + k) % 15;
int j1 = a(l, ai1[2]);
int k1;
if((k1 = a(i1, j1)) >= 15)
{
ai2[0]++;
ai2[ai2[0]] = l1;
}
}
return ai2;
}
private boolean[] a(boolean aflag[], int ai[])
{
for(int i = 1; i <= ai[0]; i++)
aflag[ai[i]] = !aflag[ai[i]];
c = ai[0];
return aflag;
}
int a[][];
boolean b[];
int c;
static
{
String as[] = new String[15];
as[0] = "c0";
as[1] = "c1";
as[2] = "c2";
as[3] = "c3";
as[4] = "c4";
as[5] = "c5";
as[6] = "c6";
as[7] = "c7";
as[8] = "c8";
as[9] = "c9";
as[10] = "d0";
as[11] = "d1";
as[12] = "d2";
as[13] = "d3";
as[14] = "d4";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -