- 締切済み
パリティチェックについて
(1) 01111011 の2進数の奇数パリティビット (2) 01011011 の2進数の偶数パリティビット (3) 1101101 の7ビットのデータの先頭に奇数パリティを付けて16進数で表す方法。 各質問の計算の仕方を教えてもらえないでしょうか? 調べても具体的な内容しか書いていなく、簡潔に表現している所が無かったので・・・・。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- YUI_AI
- ベストアンサー率45% (303/661)
補足ですが 先程の回答の場合、データの最上位ビットをパリティビットと仮定しています。 ※最上位ビットをマスクする事でデータを簡単に取り出せる。 11011100 & 01111111 → 01011100(実際のデータ) ↑論理積
- YUI_AI
- ベストアンサー率45% (303/661)
下記URL等を参考にして下さい。 ※7ビットデータとした場合 (1) 01111011 の2進数の奇数パリティビット データ自体はビットがオンになっているのは6個なので偶数 これを奇数にする為に先頭のビットを1にする 01111011→11111011 ビットのオンの数が7で奇数になるので正常 (2) 01011011 の2進数の偶数パリティビット データ自体はビットがオンになっているのは5個なので奇数 これを偶数にする為に先頭のビットを1にする 01011011→11011011 ビットのオンの数が6で偶数になるので正常 (3) 1101101 の7ビットのデータの先頭に奇数パリティを付けて16進数で表す方法。 1101101→6D[H] この場合ビットオンの数が5なので奇数になる為パリティビットをONする必要無し 例 1001101→[1]1001101→CD[H] そのデータの1になっている部分を全て足したものを奇数にするのが奇数パリティで偶数にするのが偶数パリティです。 問題点としては奇数ビットのエラーは検出可能ですが偶数ビットのエラーは検出できません。 言語で計算する場合はビットシフト(ビット演算)可能な言語で行うのが良いと思います。