Jimbo0915 Geschrieben 27. März 2014 Geschrieben 27. März 2014 (bearbeitet) Hi Leute, ich sitze gerade dabei eine CRC (CRC16 CCITT) Implementierung umzusetzen. Ich habe allerdings eine Verständnisfrage: Grundsätzlich ist es mir recht klar, wie das Ganze abläuft. Nur ein Punkt will mir nicht in den Schädel, und zwar die Generierung der Lookup Tabelle. Wenn ich das richtig verstehe, enthält die Lookup Tabelle für jedes möglicherweise im Datenframe enthaltene Byte den entsprechenden CRC-Wert, was eine Byteweise statt einer Bitweisen ermöglicht und ist dadurch dann entsprechend Schneller Der Code sieht wie folgt aus: und ist zum Teil geklaut (Quelle) Private Sub GenerateLookupTable() Dim temp As UShort Dim value As UShort [COLOR="#008000"]'Die Größe der Tabelle entspricht hier der Anzahl der im 'Datenframe möglichen Zeichen[/COLOR] _lookupTable = New UShort(255) {} [COLOR="#008000"]'Für jedes mögliche Byte im Datenstream?[/COLOR] For i As Integer = 0 To _lookupTable.Length - 1 [COLOR="#008000"]'temp stellt mit 0 initialisiertes 2 Byte Feld dar, korrekt? 'hier wird der CRC Wert von i berechnet?[/COLOR] temp = 0 [COLOR="#008000"]'Hier wird i einmal ganz nach links verschoben, wäre i also 255 'Dann würde value so aussehen (1111111100000000)?[/COLOR] value = CUShort(i << 8) [COLOR="#008000"]'Könnte jemand klügeres als ich ab hier mal für mich verständlich kommentieren? (idiotensicher )[/COLOR] For j As Integer = 0 To 7 [COLOR="#FF0000"] If ((temp Xor value) And &H8000) <> 0 Then temp = CUShort((temp << 1) Xor GENERATORPOLYNOM) Else temp <<= 1 End If value <<= 1 Next _lookupTable(i) = temp Next[/COLOR] End Sub [/code] Danke für eure Hilfe, LG Jimbo Bearbeitet 27. März 2014 von Jimbo0915
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden