⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a.java

📁 二维QR条码项目的J2ME源代码。软件包括1.核心QR码编/解库
💻 JAVA
字号:
// Decompiled by DJ v3.9.9.91 Copyright 2005 Atanas Neshkov  Date: 12/6/2006 9:44:31 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 a
{

    private void b()
    {
        int l1;
        int i2;
        int j2;
        int k2;
        int l2;
        int i3;
        int k1 = l1 = i2 = j2 = k2 = l2 = i3 = 0;
        boolean flag = false;
        int j1 = 1;
        b[0] = 1;
        b[255] = b[0];
        c[0] = 0;
        for(int k = 1; k < 256; k++)
        {
            boolean flag1 = i3;
            i3 = l2;
            l2 = k2;
            k2 = j2;
            j2 = i2 ^ flag1;
            i2 = l1 ^ flag1;
            l1 = k1 ^ flag1;
            k1 = j1;
            j1 = ((flag1) ? 1 : 0);
            b[k] = j1 + k1 * 2 + l1 * 4 + i2 * 8 + j2 * 16 + k2 * 32 + l2 * 64 + i3 * 128;
            b[k + 255] = b[k];
        }

label0:
        for(int l = 1; l < 256; l++)
        {
            int i1 = 0;
            do
            {
                if(i1 >= 256)
                    continue label0;
                if(b[i1] == l)
                {
                    c[l] = i1;
                    continue label0;
                }
                i1++;
            } while(true);
        }

    }

    private int a(int k, int l)
    {
        if(k == 0 || l == 0)
        {
            return 0;
        } else
        {
            int i1 = c[k];
            int j1 = c[l];
            return b[i1 + j1];
        }
    }

    private int a(int k)
    {
        return b[255 - c[k]];
    }

    public a(int ai[])
    {
        b = new int[512];
        c = new int[256];
        d = new int[8];
        e = new int[8];
        f = new int[8];
        g = new int[256];
        i = new int[256];
        j = 0;
        b();
        a = ai;
    }

    private void a(int ai[])
    {
        for(int l = 0; l < 8; l++)
        {
            int k = 0;
            for(int i1 = 0; i1 < ai.length; i1++)
                k = ai[i1] ^ a(b[l + 1], k);

            d[l] = k;
        }

    }

    public final void a()
    {
        a(a);
        boolean flag = false;
        if(0 < d.length && d[0] != 0)
            flag = true;
        if(flag)
            a(a, a.length, 0, new int[1]);
    }

    private void c()
    {
        int ai[] = new int[8];
        int ai1[] = new int[8];
        int ai2[] = new int[8];
        int ai3[] = new int[8];
        b(ai3);
        b(ai2, ai3);
        d(ai2);
        b(ai, ai3);
        int j1 = -1;
        int l = j;
        for(int k = j; k < 8; k++)
        {
            int k1;
            if((k1 = a(ai, d, l, k)) != 0)
            {
                for(int l1 = 0; l1 < 8; l1++)
                    ai1[l1] = ai[l1] ^ a(k1, ai2[l1]);

                if(l < k - j1)
                {
                    int i1 = k - j1;
                    j1 = k - l;
                    for(int i2 = 0; i2 < 8; i2++)
                        ai2[i2] = a(ai[i2], a(k1));

                    l = i1;
                }
                for(int j2 = 0; j2 < 8; j2++)
                    ai[j2] = ai1[j2];

            }
            d(ai2);
        }

        for(int k2 = 0; k2 < 8; k2++)
            e[k2] = ai[k2];

        d();
    }

    private void d()
    {
        int ai[] = new int[16];
        a(ai, e, d);
        c(f);
        for(int k = 0; k < 4; k++)
            f[k] = ai[k];

    }

    private void a(int ai[], int ai1[], int ai2[])
    {
        int ai3[] = new int[16];
        for(int k = 0; k < 16; k++)
            ai[k] = 0;

        for(int l = 0; l < 8; l++)
        {
            for(int i1 = 8; i1 < 16; i1++)
                ai3[i1] = 0;

            for(int j1 = 0; j1 < 8; j1++)
                ai3[j1] = a(ai2[j1], ai1[l]);

            for(int k1 = 15; k1 >= l; k1--)
                ai3[k1] = ai3[k1 - l];

            for(int l1 = 0; l1 < l; l1++)
                ai3[l1] = 0;

            for(int i2 = 0; i2 < 16; i2++)
                ai[i2] ^= ai3[i2];

        }

    }

    private void b(int ai[])
    {
        int ai1[] = new int[8];
        c(ai);
        c(ai1);
        ai[0] = 1;
        for(int k = 0; k < j; k++)
        {
            b(ai1, ai);
            a(b[i[k]], ai1);
            d(ai1);
            a(ai, ai1);
        }

    }

    private int a(int ai[], int ai1[], int k, int l)
    {
        int i1 = 0;
        for(int j1 = 0; j1 <= k; j1++)
            i1 ^= a(ai[j1], ai1[l - j1]);

        return i1;
    }

    private static void a(int ai[], int ai1[])
    {
        for(int k = 0; k < 8; k++)
            ai[k] ^= ai1[k];

    }

    private static void b(int ai[], int ai1[])
    {
        for(int k = 0; k < 8; k++)
            ai[k] = ai1[k];

    }

    private void a(int k, int ai[])
    {
        for(int l = 0; l < 8; l++)
            ai[l] = a(k, ai[l]);

    }

    private static void c(int ai[])
    {
        for(int k = 0; k < 8; k++)
            ai[k] = 0;

    }

    private static void d(int ai[])
    {
        for(int k = 7; k > 0; k--)
            ai[k] = ai[k - 1];

        ai[0] = 0;
    }

    private void e()
    {
        h = 0;
        for(int l = 1; l < 256; l++)
        {
            int k = 0;
            for(int i1 = 0; i1 < 5; i1++)
                k ^= a(b[(i1 * l) % 255], e[i1]);

            if(k == 0)
            {
                g[h] = 255 - l;
                h++;
            }
        }

    }

    private int a(int ai[], int k, int l, int ai1[])
    {
        j = l;
        for(int k1 = 0; k1 < j; k1++)
            i[k1] = ai1[k1];

        c();
        e();
        if(h <= 4 && h > 0)
        {
            for(int i1 = 0; i1 < h; i1++)
                if(g[i1] >= k)
                    return 0;

            for(int j1 = 0; j1 < h; j1++)
            {
                int l1 = g[j1];
                int l2 = 0;
                for(int i2 = 0; i2 < 8; i2++)
                    l2 ^= a(f[i2], b[((255 - l1) * i2) % 255]);

                int i3 = 0;
                for(int j2 = 1; j2 < 8; j2 += 2)
                    i3 ^= a(e[j2], b[((255 - l1) * (j2 - 1)) % 255]);

                int k2 = a(l2, a(i3));
                ai[k - l1 - 1] ^= k2;
            }

            return 1;
        } else
        {
            return 0;
        }
    }

    int a[];
    int b[];
    int c[];
    int d[];
    int e[];
    int f[];
    int g[];
    int h;
    int i[];
    int j;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -