Вычислить CRC в соответствии с полиномом CCITT (x ^ 16 + x ^ 12 + x ^ 5 + 1) - PullRequest
1 голос
/ 29 мая 2019

У меня есть метод контрольной суммы, который вычисляет полином CRC к CCIT, написанный на C #. Теперь я должен написать тот же метод в Java, но я не знаю, как написать метод в Java.

private int ComputeChecksum(byte[] buf, int StartIdx, int EndIdx)
    {
        int CRC = 0xFFFF;

        for (int i = StartIdx; i < EndIdx; i++)
        {
            int ch = buf[i];          /* Process one byte                  */

            for (int j = 0; j < 8; j++)
            {
                int xo = (CRC ^ ch) & 0x0001;

                CRC >>= 1;
                ch  >>= 1;

                if (xo == 1)
                    CRC ^= 0x8408;      /* Toggle bits / set incoming bit    */
            }
        }

        return CRC ^ 0xFFFF;        // 1's complement
    }
...