CRCの計算
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/03/05 03:09 UTC 版)
nビットの2値CRCの計算方法は単純である。入力ビット列を一行に並べ、CRCの除数を表す (n+1) ビットのパターンをその下に左端を合わせるように書く。以下に3ビットCRCの計算の最初の様子を示す。 11010011101100 <--- 入力1011 <--- 除数 (4 Bits)--------------01100011101100 <--- 結果 除数の左端のビットの上にある入力ビットが0なら、何もせず除数を右に1ビットずらす。除数の左端のビットの上にある入力ビットが1なら、除数と入力ビットをXOR演算する(つまり、除数のビット列のうち 1 になっている部分の上にあたる入力ビットを反転させる)。そして、除数を右に1ビットずらす。これを除数が入力ビット列の右端に到達するまで繰り返す。最終状態は以下の通りである。 00000000001110 <--- それまでの計算結果 1011 <--- 除数--------------00000000000101 <--- 余り (3 bits) 除数の左端ビットは毎回入力ビットを0にしていくので、最終的には除数のビット数(nビット)の範囲にだけ1のビットが残ることになる。これが除算の余りであり、同時にCRC関数の値となる(CRC仕様によっては、さらなる後処理を要求する場合がある)。
※この「CRCの計算」の解説は、「巡回冗長検査」の解説の一部です。
「CRCの計算」を含む「巡回冗長検査」の記事については、「巡回冗長検査」の概要を参照ください。
- CRCの計算のページへのリンク