Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#9

Re: c-quelltext nach Delphi portieren

  Alt 18. Jan 2008, 10:29
Der Startwert für dein o.g. CRC16 Code ist $ffff. Die berechnete CRC muss dann noch invertiert werden (not), wie es die Routine auch machte (~). Dann solltest du die gleichen Summen erhalten.

Ansonsten der Code vom 1. Beitrag mal portiert:

Delphi-Quellcode:
function ComputeCRC16(const AData: Pointer; ADataLen: integer): word; //char *msg, int len)
var
  lCheckSum: Word; // chksum
  lDataPtr: PByte; // *msgchk
begin
  lCheckSum := $ffff;
  lDataPtr := AData;

  while ( ADataLen > 0 ) do
  begin
    lCheckSum := Hi(lCheckSum) xor ccittrev_tbl[Lo(lCheckSum) xor lDataPtr^];
    
    Inc(lDataPtr);
    Dec(ADataLen);
  end;

  result := not lCheckSum;
end;
Der Code wurde hier im Beitragseditor geschrieben - kann Fehler enthalten und muss nicht unbedingt funktionieren
  Mit Zitat antworten Zitat