Entwickler-Ecke

Algorithmen, Optimierung und Assembler - CRC32 - Erklärung


charliestoned - Do 17.04.08 10:36
Titel: CRC32 - Erklärung
Moin,

ich hab schon seit einigen Tagen nach einer Implementierung von CRC32 gesucht.

Dank Suchfunktionen etc habe ich auch ein zwei gefunden.

Leider würde ich auch verstehen was da passiert und nicht nur den Code verwenden. Den algemeinen Algorithmus habe ich im Kopf und verstanden. Aber die Implementierungen auf Bitebene find ich ab und an sehr "wirr" :)


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
function Crc32(data: String): Longword;  
var
  len: Integer;  
begin  
  Result := $FFFFFFFF;  
  for len := 1 to Length(data) do  
    Result := crctab[Ord(data[len]) xor (Result and 255)] xor (Result shr 8);
  Result := not Result;  
end;


Fragen: Wozu brauche ich die CRCTAB ?! -> Reicht nicht ein Generatorpolynom?
- Was davon ist die modulo Rechnung :)

Wäre über hilfreiche Antworten dankbar.

MfG


Moderiert von user profile iconNarses: Topic aus Internet / Netzwerk verschoben am Do 17.04.2008 um 11:43


BenBE - Do 17.04.08 12:49

Die CRC-Tab macht eine Voraus-Berechnung des CRCs für 8 Bit pro Operation möglich, während der grundlegende Algorithmus nur auf einem Bit je Durchgang arbeitet ...

Die Modulo-Operation sind die XORs IIRC.