このCRCコードを計算する手順を教えてください。生成多項式 G(x)=10 data:110 crc が追加されたメッセージ: 110
データが G(x) で除算されると、余りは 0 になります。それは、CRC が 0 または何もないことを意味しますか?それとも可能でしょうか?
除算は、学校とほぼ同じ方法で行われます。
10|110
10 (xor)
------
010
10 (xor)
-------
0 <- remainder
唯一の違いは、除数が部分剰余に収まるように各行の msb のみをチェックする必要があることです
。追加されたメッセージは 1100 です。
crc を確認するには、除算を再度実行します。
10|1100
10 (xor)
-------
100
10 (xor)
--------
00
10 (no xor)
-------
0 <-- remainder is 0, so the message is valid
ただし、疑わしい点があります。一般に、crc多項式には項 +1 があり、最高次項が x^2 の場合 (たとえば)、完全な多項式には 3 つの項があり、そのうち 2 つだけが伝統的に明示的に宣言されています。次に、多項式が実際に x^2 + 1 であり、それが逆の順序で 1 + 0*x (+ 1* x^2 項は省略) として表され、残りが 2 ビットになることだけが理にかなっています。
101|110
101
--------
11 <-- final remainder; concatenated message = 11011
checking message integrity:
101|11011
101
--------
1111
101
--------
101
101
--------
00 <-- checked!