1

CRC をエンコードおよびデコードする方法を知っています。たとえば、エンコードされるバイナリ メッセージが 11010011101100 で、生成多項式が 1011
の場合、結果は次のようになります。

11010011101100 000 <--- input left padded by 3 bits
`1011`               <--- divisor
 01100011101100 000 <--- result
 1011              <--- divisor ...
  00111011101100 000
    1011
    ...
    -----------------
    00000000000000 100 <---remainder (3 bits)

それをデコードするには、同じ手法を使用しますが、3 つのゼロを残り (100) に置き換えます。

ただし、この同じ方法を使用して、通常の自然数を使用してバイナリに変換せずにcrcコードをエンコードおよびデコードする方法はありますか?

いくつかの調査を試みましたが、自然数を使用してそれを行う方法や例が見つかりません。バイナリの例しか見つからないようです。みんな助けてください?

4

1 に答える 1

2

これはまったく同じアルゴリズムです。あなた自然数で働いています。それらの書き方は重要ではありません。「左に3ビットシフト」は「8を掛ける」と同じです。「1ビット右にシフト」は、「2で除算し、余りを破棄する」と同じです。「最後の3ビットを取る」は「8で割った余りを取る」と同じです。ただし、2つの数値のビットXORは、算術的な用語で説明するのは簡単ではありません。

于 2012-04-30T14:52:59.673 に答える