パスワードを忘れた? アカウント作成
568129 journal

shado2001の日記: あさがお日記 このファイルのCRCは 64100000です。

日記 by shado2001

いやはや、たかがCRC32を計算しなおすのに
教科書に頼らず、エイヤッと始めたら、しっかりと罠にかかり
3日間も、のたうちまわりました。焼きなおしが必要です。
 チョット見なおしてみると罠は以下でした。 恥ずかしい。

1.CRCの真の意味が判らなかった。
  つまり、TheNetでのファイル交換上の同一性確認と
  特定の数値で割る作業が どうして同一性が確保できるか判らなかった。

2.エンディアン
 (ビットを並べて、バイトやワード化する時の並び方)
  まず、フリーソフトのバイナリエディタにあった エンディアン
  設定に化かされて誤解した。
  ソフト開発やデバッグ時のバイナリファイルの見え方と
  実際のメモリの扱いに悩んだ 嶋さんのバカ

3.真の計算域の誤り
  計算すべきファイルが50バイトとすると
  メモリ上に Addr=k からk+49 確保していたが
  よくよく見ると k+1 からk+49+1+CRCの内容バイトまで
  無条件に計算していた。本当は以下であるはず

3.1.crcを計算するときには  kからk+49
3.2.crcが正しいか判断するには
  ファイルのお尻に続いてCRCの内容を並べて
  CRCまで含めて計算すると00000000になる
  
        だが、3.2.の計算の時ばかり考えていて
  CRC32の4バイト分の00hを3.1.の計算時も
  含めてしていた。
  結果としていつまでも 計算が合わなかった。

4.CRCの出力フォームには 4つの設定があった  
  初期値 all 0 all 1
  入力時 MSBから LSBから
  結果出力時 MSBから LSBから
  出力結果 正論理 負論理

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

長期的な見通しやビジョンはあえて持たないようにしてる -- Linus Torvalds

読み込み中...