ThoughtWorks.QRCode/ThoughtWorks/QRCode/Codec/Ecc/BCH15_5.cs

(开头部分) 7KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

namespace ThoughtWorks.QRCode.Codec.Ecc
{
    using System;

    public class BCH15_5
    {
        internal int[][] gf16;
        internal bool[] recieveData;
        internal int numCorrectedError;
        internal static string[] bitName = new string[] { "c0", "c1", "c2", "c3", "c4", "c5", "c6", "c7", "c8", "c9", "d0", "d1", "d2", "d3", "d4" };

        public BCH15_5(bool[] source)
        {
            this.gf16 = this.createGF16();
            this.recieveData = source;
        }

        internal virtual int addGF(int arg1, int arg2)
        {
            int[] x = new int[4];
            for (int i = 0; i < 4; i++)
            {
                int num2 = ((arg1 < 0) || (arg1 >= 15)) ? 0 : this.gf16[arg1][i];
                int num3 = ((arg2 < 0) || (arg2 >= 15)) ? 0 : this.gf16[arg2][i];
                x[i] = (num2 + num3) % 2;
            }
            return this.searchElement(x);
        }

        internal virtual int[] calcErrorPositionVariable(int[] s)
        {
            int[] numArray = new int[4];
            numArray[0] = s[0];
            int num = (s[0] + s[1]) % 15;
            int num2 = this.addGF(s[2], num);
            num2 = (num2 >= 15) ? -1 : num2;
            num = (s[2] + s[1]) % 15;
            int num3 = this.addGF(s[4], num);
            num3 = (num3 >= 15) ? -1 : num3;
            numArray[1] = ((num3 < 0) && (num2 < 0)) ? -1 : (((num3 - num2) + 15) % 15);
            num = (s[1] + numArray[0]) % 15;
            int num4 = this.addGF(s[2], num);
            num = (s[0] + numArray[1]) % 15;
            numArray[2] = this.addGF(num4, num);
            return numArray;
        }

        internal virtual int[] calcSyndrome(bool[] y)
        {
            int num;
            int num2;
            int[] numArray = new int[5];
            int[] x = new int[4];
            for (num = 0; num < 15; num++)
            {
                if (y[num])
                {
                    num2 = 0;
                    while (num2 < 4)
                    {
后面还有 176 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。