「垂直パリティチェック」と「水平パリティチェック」の違い
予備知識
| 用語 | 意味 |
|---|---|
| パリティチェック | 送り手側では送るデータ(「0」と「1」の集まり)の「1」の個数が偶数か奇数かの目印(「0」か「1」)を付けて送ってやり、受け手側ではデータ内の「1」の個数と偶数・奇数の目印が一致するか確認することでデータがおかしくなってないかチェックするやり方 |
| パリティビット | パリティチェックの話で出てくる用語のひとつで、データ内の「1」の個数が偶数か奇数かを表す目印 |
| ビット | コンピュータの世界における「0か1が入る箱」のこと。あるいはコンピュータの世界における「0か1が入る箱」の数を表す単位 |
| ビット列 | ビットが何個か並んだもの |
それぞれの用語の意味
| 用語 | 意味 |
|---|---|
| 垂直パリティチェック | パリティチェックの種類?分類?やり方?のひとつで、データ(ビット列)を区切って、区切ったそれぞれに対してパリティビットをくっつけるやり方 |
| 水平パリティチェック | パリティチェックの種類?分類?やり方?のひとつで、データ(ビット列)を区切って、ビット位置(1ビット目とか2ビット目とか)ごとにパリティビットを用意するやり方 |
似ているところ
どちらもパリティチェックの種類?分類?やり方?です。
違うところ
何に対してパリティビットを用意するかが違います。
垂直パリティチェックは、それぞれのブロックごとにパリティビットを用意します。

水平パリティチェックは、ビット位置(1ビット目とか2ビット目とか)ごとにパリティビットを用意します。

どっちがどっちか分からなくなりそうな人は
垂直パリティチェック:1つのブロック内で完結する
水平パリティチェック:複数のブロックにまたがる
と覚えてください。
複数に分けたブロックのうちの1つだけを見ても、垂直パリティチェックは成立します。
1つのブロックに対するパリティが垂直パリティチェックだからです。

複数に分けたブロックのうちの1つだけを見たら、水平パリティチェックは成立しません。
複数ブロックの同じバイト位置に対するパリティが水平パリティチェックだからです。

備考
「垂直」とか「水平」の部分は気にしない方が良いと思います。
理由は、見方次第で「縦(列、垂直)」と「横(行、水平)」が入れ替わるからです。

垂直パリティチェックとか水平パリティチェックの説明において「垂直方向にパリティビットを付与する(垂直パリティチェック)」や「水平方向にパリティビットを付与する(水平パリティチェック)」のような説明をされていることがあります。
その場合、それぞれのビット列は縦に並んでいるはずです。
1列目が1ブロック目で、2列目が2ブロック目で、3列目が3ブロック目という形で表現されているはずです。

ですが、一般的に「ビット列」と言われたら、普通はビットが横に並んでいる状態をイメージしますよね。

これが「垂直」と「水平」が紛らわしい理由です。
変に「縦(列、垂直)」と「横(行、水平)」で考えないで
垂直パリティチェック:ブロックごとのパリティ(1つのブロック内で完結する)
水平パリティチェック:ビット位置ごとのパリティ(複数のブロックにまたがる)
のように覚えておく方が混乱しないと思います。






