我有一个校验和方法,可以计算用C#编写的CCIT CCn多项式的CRC。现在,我必须在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
}