パリティビットとは?
パリティビットとは、バイナリデータの末尾に付け加える1ビットの追加ビットで、シンプルなエラー検出を可能にする仕組みです。エラーチェック方式としては最も古く、コストの低い手法のひとつで、シリアル通信(UART)やメモリ、ストレージなどで広く使われてきました。パリティビットは、パリティビット自身を含めた1のビットの総数が、常に偶数になる(偶数パリティ)か、あるいは常に奇数になる(奇数パリティ)ように決められます。
この計算機の使い方
バイナリデータを0と1の並び(例:1011010)として入力してください。0と1以外の文字は無視されます。計算機はデータに含まれる1のビット数を数え、付加すべき偶数パリティビットと奇数パリティビットの両方を表示します。
計算式
まず、1のビットの個数(これをonesと呼びます)を数えます。偶数パリティビットは単純にones mod 2で求められます。データの1がすでに偶数個ならパリティビットは0、奇数個ならパリティビットは1となり、総数が偶数に戻ります。一方、奇数パリティビットはその反対で1 - (ones mod 2)となり、全体の個数を強制的に奇数にします。
計算例
データ1011010を考えてみましょう。1のビットは1、3、4、6番目の位置にあり、合計4個です。\(4 \bmod 2 = 0\) なので、偶数パリティビットは0(総数はすでに偶数)です。一方奇数パリティビットは1で、これを付加すると1の総数は5個となり、奇数になります。
よくある質問
パリティで検出できるエラーは? パリティは奇数個(1個、3個、5個…)のビット反転を検出できます。偶数個のエラーは検出できず、また誤りを訂正することもできません。
偶数パリティと奇数パリティ、どちらが優れている? エラー検出能力に差はありません。どちらを使うかは送信側と受信側で合意する取り決めの問題です。なかには、全ビットが0の状態をエラーとして検出できるよう、奇数パリティを好むシステムもあります。
パリティビット自身もカウントに含まれる? はい。パリティとは、データの1の個数にパリティビットを加えた総数を指します。だからこそ、計算式ではデータ部分の1の個数を使うのです。