Android-CRC-CCITT

Brauche ich einen CRC-check für eine Anwendung Im schreiben, aber kann nicht herausfinden, für die online-code-und Rechenmaschinen, was ich falsch mache. Ich kann einfach nicht es richtig zu verstehen. Dies ist, was ich brauche :

Es nutzt CRC-CCITT mit einem Startwert 0xFFFF mit reverse input bit um. Zum Beispiel, die Bekommen Gerätetyp Meldung: 0x01, 0x06, 0x01, 0x00, 0x0B, 0xD9. Der CRC ist 0xD90B.

- Und dies ist der code Im Einsatz :

public static int CRC16CCITT(byte[] bytes) {
    int crc = 0xFFFF;          //initial value
    int polynomial = 0x1021;   //0001 0000 0010 0001  (0, 5, 12) 

    for (byte b : bytes) {
        for (int i = 0; i < 8; i++) {
            boolean bit = ((b   >> (7-i) & 1) == 1);
            boolean c15 = ((crc >> 15    & 1) == 1);
            crc <<= 1;
            if (c15 ^ bit) crc ^= polynomial;
         }
    }

    crc &= 0xffff;
    //System.out.println("CRC16-CCITT = " + Integer.toHexString(crc));
    return crc;

Im schreiben für ein Android-Gerät, so muss in java.

Schreibe einen Kommentar