melmager
Erfahrenes Mitglied
Ich liebe so kleine Nebensätze in einer Protokollbeschreibung :-(
also habe ich mal etwas eingelesen was ich verstanden habe ist die Prüfung Bitweise - könnte sie also in Java
umsetzen - aber es wird auch gesagt man sollte über eine Tabelle arbeiten - sehe ich ja ein denn das macht das ja wesendlich schneller, aber was ich nicht verstehe sind die Algorithmen die eine solche Tabelle erstellen
was ich gefunden habe ist:
und der update teil:
das in Javacode zu giessen ist ja kein Problem aber ist das richtig ?
ich habe leider noch nix gefunden wo die tabellen version erklärt wird und wie ich auf den Code komme
Ps crc ccitt solle sein x16 x12 x5 +1 (die zahlen natürlich hoch gestellt
und noch ein codeschnipsel den ich nicht verstehe :
// Update the CRC for transmitted and received data using
// the CCITT 16bit algorithm (X^16 + X^12 + X^5 + 1).
hat einer von euch eine Idee zu der Tabellen Version?
brauche mal code und Tabelle
...der Datensatz muss mit einer CRC CCITT Prüfsumme abgeschlossen werden...
also habe ich mal etwas eingelesen was ich verstanden habe ist die Prüfung Bitweise - könnte sie also in Java
umsetzen - aber es wird auch gesagt man sollte über eine Tabelle arbeiten - sehe ich ja ein denn das macht das ja wesendlich schneller, aber was ich nicht verstehe sind die Algorithmen die eine solche Tabelle erstellen
was ich gefunden habe ist:
Code:
z:= i xor (i shr 4)
table[i] := (z xor 8) xor (z shl 3) xor (z shr 4)
und der update teil:
Code:
crc := (crc shr 8) xor table[data xor lo(crc)] ;
das in Javacode zu giessen ist ja kein Problem aber ist das richtig ?
ich habe leider noch nix gefunden wo die tabellen version erklärt wird und wie ich auf den Code komme
Ps crc ccitt solle sein x16 x12 x5 +1 (die zahlen natürlich hoch gestellt
und noch ein codeschnipsel den ich nicht verstehe :
// Update the CRC for transmitted and received data using
// the CCITT 16bit algorithm (X^16 + X^12 + X^5 + 1).
Code:
unsigned char ser_data;
static unsigned int crc;
crc = (unsigned char)(crc >> 8) | (crc << 8);
crc ^= ser_data;
crc ^= (unsigned char)(crc & 0xff) >> 4;
crc ^= (crc << 8) << 4;
crc ^= ((crc & 0xff) << 4) << 1;
hat einer von euch eine Idee zu der Tabellen Version?
brauche mal code und Tabelle