モナーの *やさしい* Delphi質問スレ
■ このスレッドは過去ログ倉庫に格納されています
CRC32(ITU-T76ですか?)の規格を持っていないので
procedure crc(dt:byte;var crc:integer);
var w,i:integer;
begin
for i:=0 to 7 do begin//dtにバイトを渡す場合 32bitを渡すなら 定義を変更して下さい
w:=((dt xor crc) and 1)*$xxxxxxxx ;//ここに規格にあるビット位置を1にした2進数を入れ
dt := dt shr 1;
crc:= crc shr 1; //シフト方向は規格により違うんであわせて下さい
crc:= crc XOR w;
end;
end;
初期化と終了があります。初期化でcrcを-1にし終了で反転したりの処理が規格書にあるかと
それと上のコードは遅い方法です。バイト単位に計算したテーブル検索にすると8倍高速になります
自分専用の規格なら $EDB88320 くらいが適当かと
■ このスレッドは過去ログ倉庫に格納されています