偶数パリティビット計算機 - 二進数エラー検出
二進数データ送信向けの偶数パリティビットを生成し、受信した二進数文字列の1ビット誤りを即座に検証します。
二進数データを入力して偶数パリティビットと送信文字列を計算するか、受信データを貼り付けて送信エラーを確認してください。
偶数パリティビット計算機 - 二進数エラー検出
二進数データ送信向けの偶数パリティビットを生成し、受信した二進数文字列の1ビット誤りを即座に検証します。
偶数パリティビット計算機について
パリティチェックは、デジタル通信で最も古く、かつ広く使われているエラー検出機構のひとつです。二進数データがノイズの多い経路——シリアルケーブル、メモリバス、ネットワークリンク、保存媒体——を通ると、電気的干渉、宇宙線、ハードウェア障害によって個々のビットが破損することがあります。パリティビットは、データブロックに付加する 1 つの追加ビットで、受信側が破損の有無を確認できるようにします。
偶数パリティでは、データビットにパリティビットを加えた全体の 1 の総数が常に偶数になるようにします。ルールは単純です。元のデータ中の 1 の数を数え、その数がすでに偶数ならパリティビットは 0、奇数なら 1 を設定して合計を偶数にします。数学的には、パリティビットはすべてのデータビットの XOR(排他的論理和)です。ハードウェア回路ならナノ秒単位で実行できます。
具体例を見てみましょう。4 ビットのデータ 1010 を送信するとします。この語には 1 が 2 個あり、すでに偶数なので、偶数パリティビットは 0 です。完全な送信文字列は 10100 になります。受信側では 5 ビット全体を XOR します。1 ⊕ 0 ⊕ 1 ⊕ 0 ⊕ 0 = 0。結果が 0 なら 1 の総数は偶数なので、エラーはフラグされません。もし転送中に 1 ビット破損して文字列が 11100 になった場合、受信側の XOR は 1 ⊕ 1 ⊕ 1 ⊕ 0 ⊕ 0 = 1 です。非 0 の XOR 結果は 1 の総数が奇数であることを意味し、5 ビットフレームのどこかでエラーが起きたことを示します。
偶数パリティと奇数パリティの違いは、目標の総数が偶数か奇数かだけです。どちらも、1 ビットだけの誤りなら 100% の確率で検出できます。1 ビット反転は偶奇性を変えるためです。ただし、同時に偶数個のビットが反転すると、2 回の反転が打ち消し合うため、両方式とも静かに失敗します。複数ビット誤りに対応する必要がある場合は、CRC(巡回冗長検査)、ハミング符号、Reed-Solomon 符号など、より高度なコードを使います。
すべてのデータビットが 0 の場合、偶数パリティは奇数パリティより好まれることがあります。奇数パリティでは、全 0 のデータ語に必ず 1 のパリティビットが付き、送信全体が非 0 になります。偶数パリティでは、全 0 のデータ語は全 0 の送信となり、初期化やハンドシェイクのプロトコルで便利なことがあります。どちらを使うかは、通常は採用する通信規格で決まります。
偶数パリティの実用例には、UART シリアル通信(パリティモードが設定可能)、各バイトに 1 ビットのパリティを持たせる旧式メモリ、特定のネットワークフレーミングプロトコルなどがあります。現代の高速リンクではより強力なエラー検出・訂正コードが一般的ですが、偶数パリティはリソース制約のある組み込みシステムで今でも有用であり、コンピュータサイエンスやデジタル回路の基礎として教えられています。
この計算機は偶数パリティ計算の各手順を自動化します。入力が純粋な二進数であることを検証し、1 の個数を数え、正しい偶数パリティビットを決定し、完全な送信文字列を出力します。任意の検証フィールドでは、受信文字列(パリティビットを含む)を貼り付けて、偶数パリティチェックが通るか失敗するかをすぐに確認できます。
偶数パリティビットの例
下の表では、いくつかの二進数入力に対する偶数パリティビットの求め方を示しています。
| 二進数データ | パリティビット | 送信文字列 |
|---|---|---|
| 1010 | 0 | 1 が 2 個(偶数)→ パリティビット = 0。送信: 10100 |
| 1110 | 1 | 1 が 3 個(奇数)→ パリティビット = 1。送信: 11101 |
| 11001100 | 0 | 1 が 4 個(偶数)→ パリティビット = 0。送信: 110011000 |
| 10110100 | 0 | 1 が 4 個(偶数)→ パリティビット = 0。送信: 101101000 |
| 11111111 | 0 | 1 が 8 個(偶数)→ パリティビット = 0。送信: 111111110 |
偶数パリティビット計算機の使い方
- 送信したい二進数文字列を「二進数データ」欄に入力します。使用できるのは 0 と 1 だけで、空白や区切り記号は入れないでください。
- 「偶数パリティビットを計算」をクリックすると、1 の数、必要な偶数パリティビット、完全な送信文字列が表示されます。
- 送信文字列(元データに追加したパリティビットを含む)をコピーして受信側へ送ってください。
- 受信データを検証するには、受信した文字列全体(パリティビットを含む)を「受信データ」欄に貼り付け、「計算」をクリックします。1 の総数が偶数かどうかをチェックします。
- 「リセット」をクリックすると、すべての欄がクリアされ、新しく計算を始められます。
偶数パリティビット計算機 FAQ
偶数パリティとは何ですか?
偶数パリティは、二進数データにパリティビットを付加し、組み合わせた文字列(データ + パリティビット)中の 1 の総数が常に偶数になるようにするエラー検出方式です。データにすでに偶数個の 1 があればパリティビットは 0、奇数個なら 1 にして合計を偶数にします。
偶数パリティビットはどう計算しますか?
偶数パリティビットは、すべてのデータビットの XOR に等しくなります。XOR は 1 の数が奇数のとき 1、偶数のとき 0 を返します。たとえば 1010(1 が 2 個で偶数)では XOR は 0 なのでパリティビットも 0 です。1110(1 が 3 個で奇数)では XOR は 1 なのでパリティビットも 1 です。
偶数パリティと奇数パリティの違いは何ですか?
偶数パリティは 1 の総数を偶数にし、奇数パリティは奇数にします。どちらも単一ビット誤りを検出できます。実務上の主な違いは、奇数パリティでは全 0 のデータ語でもパリティビットが非 0 になり、0 に張り付いた故障の検出に役立つことです。偶数パリティは、ゼロ値のパディングバイトを使うプロトコルで一貫したフレーミングが必要な場合に向いています。
偶数パリティはすべてのエラーを検出できますか?
いいえ。偶数パリティは 1 ビット反転で偶奇性が変わるため、単一ビット誤りは確実に検出できます。しかし、ちょうど 2 ビットが同時に反転すると偶奇性は変わらないため、エラーは検出されません。より強力な保護が必要なら、CRC、ハミング符号、Reed-Solomon 符号を使ってください。
偶数パリティは実際にどこで使われますか?
偶数パリティは、UART シリアル通信(パリティモードが設定可能)、一部の旧式メモリモジュール、特定のネットワークフレーミングプロトコルで使われます。また、最小限の数学的複雑さでエラー検出を説明できるため、コンピュータサイエンスやデジタル回路の授業でも基本概念として扱われます。
検証チェックはどのように動作しますか?
受信データを検証するには、元データに付加されたパリティビットを含む受信文字列全体を「受信データ」欄に入力します。計算機は受信文字列中の 1 の総数を数えます。偶数なら偶数パリティが満たされ、エラーはフラグされません。奇数なら、単一ビット誤り(または奇数個の誤り)が検出されています。