📄 a.java
字号:
// Decompiled by DJ v3.9.9.91 Copyright 2005 Atanas Neshkov Date: 12/6/2006 9:56:30 AM
// Home Page : http://members.fortunecity.com/neshkov/dj.html - Check often for new version!
// Decompiler options: packimports(3)
package jp.sourceforge.qrcode.reader;
import java.io.ByteArrayOutputStream;
public final class a
{
public a(int ai[], int i)
{
c = -1;
d = 0;
e = 7;
f = 0;
a = ai;
b = i;
}
private int a(int i)
throws ArrayIndexOutOfBoundsException
{
if(i < e + 1)
{
int j = 0;
for(int i1 = 0; i1 < i; i1++)
j += 1 << i1;
j <<= (e - i) + 1;
int j1 = (a[d] & j) >> (e - i) + 1;
e -= i;
return j1;
}
if(i < e + 1 + 8)
{
int k = 0;
for(int k1 = 0; k1 < e + 1; k1++)
k += 1 << k1;
int l1 = (a[d] & k) << i - (e + 1);
d++;
l1 += a[d] >> 8 - (i - (e + 1));
e = e - i % 8;
if(e < 0)
e = 8 + e;
return l1;
}
if(i < e + 1 + 16)
{
int l = 0;
int i2 = 0;
for(int j2 = 0; j2 < e + 1; j2++)
l += 1 << j2;
int k2 = (a[d] & l) << i - (e + 1);
d++;
int l2 = a[d] << i - (e + 1 + 8);
d++;
for(int i3 = 0; i3 < i - (e + 1 + 8); i3++)
i2 += 1 << i3;
i2 <<= 8 - (i - (e + 1 + 8));
int j3 = (a[d] & i2) >> 8 - (i - (e + 1 + 8));
int k3 = k2 + l2 + j3;
e = e - (i - 8) % 8;
if(e < 0)
e = 8 + e;
return k3;
} else
{
return 0;
}
}
private int b()
throws ArrayIndexOutOfBoundsException
{
return a(4);
}
private int b(int i)
throws ArrayIndexOutOfBoundsException
{
switch(i)
{
case 1: // '\001'
if(b <= 9)
return a(10);
if(b >= 10 && b <= 13)
return a(12);
// fall through
case 2: // '\002'
if(b <= 9)
return a(9);
if(b >= 10 && b <= 13)
return a(11);
// fall through
case 4: // '\004'
if(b <= 9)
return a(8);
if(b >= 10 && b <= 13)
return a(16);
// fall through
case 8: // '\b'
if(b <= 9)
return a(8);
if(b >= 10 && b <= 13)
return a(10);
// fall through
case 3: // '\003'
case 5: // '\005'
case 6: // '\006'
case 7: // '\007'
default:
return 0;
}
}
public final String a()
throws ArrayIndexOutOfBoundsException
{
String s = "";
boolean flag = true;
do
{
c = b();
if(c != 0 || flag)
{
if(c != 1 && c != 2 && c != 4 && c != 8)
c = 4;
flag = false;
f = b(c);
switch(c)
{
case 1: // '\001'
s = s + c(f);
break;
case 2: // '\002'
s = s + d(f);
break;
case 4: // '\004'
s = s + e(f);
break;
case 8: // '\b'
s = s + f(f);
break;
}
} else
{
return s;
}
} while(true);
}
private String c(int i)
throws ArrayIndexOutOfBoundsException
{
int j = i;
int k = 0;
String s = "";
do
{
if(j >= 3)
{
if((k = a(10)) < 100)
s = s + "0";
if(k < 10)
s = s + "0";
j -= 3;
} else
if(j == 2)
{
if((k = a(7)) < 10)
s = s + "0";
j -= 2;
} else
if(j == 1)
{
k = a(4);
j--;
}
if(k == 0)
break;
s = s + Integer.toString(k);
} while(j > 0);
return s;
}
private String d(int i)
throws ArrayIndexOutOfBoundsException
{
int j = i;
boolean flag = false;
String s = "";
char ac[] = {
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
'U', 'V', 'W', 'X', 'Y', 'Z', ' ', '$', '%', '*',
'+', '-', '.', '/', ':'
};
do
if(j > 1)
{
int k;
int i1 = (k = a(11)) / 45;
int j1 = k % 45;
s = s + String.valueOf(ac[i1]);
s = s + String.valueOf(ac[j1]);
j -= 2;
} else
if(j == 1)
{
int l = a(6);
s = s + String.valueOf(ac[l]);
j--;
}
while(j > 0);
return s;
}
private String e(int i)
throws ArrayIndexOutOfBoundsException
{
int j = i;
boolean flag = false;
ByteArrayOutputStream bytearrayoutputstream = new ByteArrayOutputStream();
boolean flag1 = true;
do
{
int k;
if((k = a(8)) == 0)
flag1 = false;
else
bytearrayoutputstream.write((byte)k);
if(--j == 0)
flag1 = false;
} while(flag1);
String s = null;
try
{
s = new String(bytearrayoutputstream.toByteArray(), "UTF-8");
}
catch(Exception _ex)
{
s = new String(bytearrayoutputstream.toByteArray());
}
return s;
}
private String f(int i)
throws ArrayIndexOutOfBoundsException
{
int j = i;
boolean flag = false;
String s = "";
do
{
int k;
int l = (k = a(13)) % 192;
int i1;
int j1;
int k1;
if((j1 = ((i1 = k / 192) << 8) + l) + 33088 <= 40956)
k1 = j1 + 33088;
else
k1 = j1 + 49472;
byte abyte0[];
(abyte0 = new byte[2])[0] = (byte)(k1 >> 8);
abyte0[1] = (byte)(k1 & 0xff);
s = s + new String(abyte0);
} while(--j > 0);
return s;
}
int a[];
int b;
int c;
int d;
int e;
int f;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -