java板块没错,看清题意~是将c的一个算法转成java版本的~

解决方案 »

  1.   

    试试这个,用c和java跑出来结果一样java里short最大值32767,只能用int了。
    public class Test01 { public static void main(String[] args) {
    int crc = CRC16(new byte[] { 0x01, 0x02, 0x03, 0x04, 0x03, 0x02 }, 6);
    System.out.println(Integer.toHexString(crc));
    } static int CRC16(byte[] buffer, int len) {
    int index = 0;
    int crc = 0;
    while (len-- > 0) {
    crc = (crc >> 8) | (crc << 8);
    crc ^= buffer[index++];
    crc ^= (crc & 0xff) >> 4;
    crc ^= (crc << 8) << 4;
    crc ^= ((crc & 0xff) << 4) << 1;
    crc &= 0xFFFF;
    }
    return crc;
    }
    }