情報理論と符号の基礎
データを1バイトずつ足し合わせ、和の下位8ビットを検査値(チェックサム)として付けて送る。この検査で検出できない誤りはどれか。
- Aどれか1つのバイトの中で、1ビットだけが反転する誤り
- Bどれか1つのバイトの値が、1だけ大きくなる誤り
- C2つのバイトの順序が入れ替わる誤り
答えと解説を見る
正解:C. 2つのバイトの順序が入れ替わる誤り
足し算は順序を入れ替えても結果が変わらないので、2つのバイトが入れ替わっても和は同じになり、誤りを検出できません。1ビットの反転や、1つのバイトの値が1だけ変わる誤りでは、和の下位8ビットが必ず変わるので検出できます。CRCでは、ビットの位置によって割り算の余りへの効き方が変わるので、このような入れ替えも多くの場合に検出できます。
- A. 1ビットの反転は、和を 2^k(kは0〜7)だけ変えるので、下位8ビットが必ず変わり、検出できます。
- B. 和が1だけ変わるので、下位8ビットも変わり、検出できます。
- C. 正しい。足し算の順序を変えても和は同じなので、検出できません。