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.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist der code, den ich verwende in meiner App (Es funktioniert).