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

📄 b.java

📁 二维QR条码项目的J2ME源代码。软件包括1.核心QR码编/解库
💻 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 + -