Search code examples
javaphpcrc16

CRC16 code from Java to PHP


How to convert the Java CRC16 code to PHP code? PHP doesn't accept byte and >>>

public static int CRC16(final byte[] buffer) {
        int crc = 0xffff;

        for (int i = 0; i < buffer.length; i++) {
            crc = ((crc >>> 8) | (crc << 8)) & 0xffff;
            crc ^= (buffer[i] & 0xff);
            crc ^= ((crc & 0xff) >> 4);
            crc ^= (crc << 12) & 0xffff;
            crc ^= ((crc & 0xff) << 5) & 0xffff;
        }
        crc &= 0xffff;

        return crc;
    }

Solution

  • Replace crc >>> 8 with (crc >> 8) & 0xff.