垂直パリティ
データが おかしくなってないか確認する やり方だよ
ビット列を区切って、区切ったそれぞれに対してパリティビットをくっつけるよ
「垂直」の部分は気にしない方が良いと思うよ
簡単に書くよ
垂直パリティ(読:スイチョクパリティ 英:vertical parity)とは
送り手側では送るデータ(「0」と「1」の集まり)の「1」の個数が偶数か奇数かの目印(「0」か「1」)を付けて送ってやり、受け手側ではデータ内の「1」の個数と偶数・奇数の目印が一致するか確認することでデータがおかしくなってないかチェックするやり方(パリティチェック)の種類?分類?やり方?のひとつ
であり
例えば「100011110101」というデータ(ビット列)を「1000」「1111」「0101」の3つに分けて「1000」「1111」「0101」それぞれに対して「偶数・奇数の目印(パリティビット)」をくっつけるやり方
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・パリティチェック(パリティ)
・パリティビット
・ビット
・ビット列
についてガッツリ説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
大前提として、コンピュータさんは「0(ゼロ)」と「1(イチ)」しか分かりません。
「0(ゼロ)」と「1(イチ)」の組み合わせで、文字を表現したり、音楽を表現したり、動画を表現したり、コンピュータの世界のあれやこれやを扱っています。
例えば、ピヨ太パソコンからピヨ子パソコンにメールを送ったとしましょう。
このメールも、コンピュータさんにとっては「0(ゼロ)」と「1(イチ)」の集まりです。
人間様の見えないところでは「0100101010011100001011111001110……」みたいな形で扱われているのです。
まずは
どんなデータもコンピュータさんにとっては「0」と「1」の集まり
というのを押さえておいてください。
パリティチェックは
1.送り手側でデータの中にある「1」の個数を数える
2.「1」の個数が偶数か奇数かの目印を付ける
例)偶数だったら「0」奇数だったら「1」を付ける
3.目印を付けたデータを相手に送る
4.受け手側でデータの中にある「1」の個数を数える
5.目印の示す偶数・奇数と実際の「1」の個数の偶数・奇数が一致するか判定する
ことで、データがおかしくなっていないかチェックするやり方です。
単に「パリティ」と表現されることも あります。
例えば、そうですね。
まず前提として、偶数・奇数を表す目印は
「1」の個数が偶数→「0」
「1」の個数が奇数→「1」
を付けることにしましょう。
その上で、ピヨ太パソコンからピヨ子パソコンに
101
というデータを送ることにしました。
送ろうとしたデータの中に「1」は2個あります。
「偶数」個あるわけです。
そこでデータの最後に「1」の個数が偶数であることを表す目印「0」を付けました。
目印を付けた後のデータは
1010
です。
この状態のデータをピヨ子パソコンに送ります。
データを受け取ったピヨ子パソコン側では、データの中にある「1」の個数を数えます。
今回は2個ありました。
ということは「偶数」です。
次に、目印を見ます。
目印は「偶数」を意味する「0」でした。
ふむ。
実際の「1」の個数は偶数でした。
目印は偶数を意味しています。
一致しますね。
このことから、なんとなーくではありますが「多分、おかしくなってないんじゃない?」と判断できます。
せっかくなので、もう一例、見てみましょう。
今度はピヨ太パソコンからピヨ子パソコンに
100
というデータを送ることにしました。
送ろうとしたデータの中に「1」は1個しかありません。
「奇数」個です。
そこでデータの最後に「1」の個数が奇数であることを表す目印「1」を付けました。
目印を付けた後のデータは
1001
です。
この状態のデータをピヨ子パソコンに送ります。
おっと、途中でアクマ君がデータを蹴っ飛ばしてしまいました。
その結果「1001」は「1101」になってしまいました。
データを受け取ったピヨ子パソコン側では、データの中にある「1」の個数を数えました。
その結果「1」は2個でした。
ということは「偶数」です。
次に、目印を見ます。
目印は「奇数」を意味する「1」でした。
あれ?
一致しませんね。
この時点で「どこがおかしいかは分からないけど、何かがおかしいっぽい」ということが分かります。
まぁ、おかしいものは仕方がありません。
もう一度、正しいデータを送ってもらいましょう。
この例のように
1.送り手側で「データの中にある『1』の個数が偶数か奇数かを表す目印」を付けて送ってやる
2.受け手側で、データの中にある「1」の個数と目印を見比べる
ことでデータがおかしくなってないかチェックするやり方がパリティチェック(パリティ)です。
パリティビットは、パリティチェックの話で出てくる「『1』の個数が偶数か奇数かを表す目印」です。
ビットは、コンピュータさんの世界における「0か1が入る箱」です。
あるいは、この「0か1が入る箱」の数を表す単位です。
例えば「4ビット」であれば「0か1が入る箱が4つあるよ」の意味になります。
「パリティ」チェックで使う「ビット」だから「パリティビット」です。
ビット列は「ビットが何個か並んだもの」です。
0か1が入る箱(ビット)が、くっついて何個か置いてあるイメージです。
例えば
0100
のようなものがビット列です。
あるいは
11010100
のようなものですね。
以上を踏まえて
1つの長いビット列を複数のビット列(ブロック)に区切って、それぞれのブロックごとにパリティビットをくっつけるやり方
が「垂直パリティ」です。
例えば、そうですね。
100011110101
というビット列が あったとしましょう。
これを4ビットごとに区切って
1ブロック目:1000
2ブロック目:1111
3ブロック目:0101
のように分けました。
あとは、それぞれのブロックごとにパリティビットをくっつければ完了です。
今回、パリティビットは
「1」の個数が偶数→「0」
「1」の個数が奇数→「1」
を付けることにします。
それぞれのブロックにパリティビットを付けると
1ブロック目:10001
2ブロック目:11110
3ブロック目:01010
となります。
このようなやり方が垂直パリティです。
ビット列を分割して、分割したそれぞれにパリティビットをくっつけるやり方
です。
なお「垂直」の部分は気にしなくて良いです。
むしろ、気にしないでください。
気にすると逆に混乱すると思います。
理由は、見方次第で「横(行、水平)」と「縦(列、垂直)」が入れ替わるからです。
先ほどの例で「100011110101」を
1ブロック目:1000
2ブロック目:1111
3ブロック目:0101
という3つのブロックに分けました。
これを表現するときに、それぞれのブロックごとにビットを横に並べて表現しました。
1行目が1ブロック目で、2行目が2ブロック目で、3行目が3ブロック目という形です。
垂直パリティの説明で「垂直方向に~」とか言っているときは、それぞれのブロックごとにビットが縦に並べられているはずです。
1列目が1ブロック目で、2列目が2ブロック目で、3列目が3ブロック目という形で表現されているはずです。
よって「垂直方向にパリティビットを付与する」のような覚え方をすると、状況次第では混乱します。
ビット列を区切って、それぞれの固まりごとにパリティビットをくっつける
と覚えてあげてください。
一言でまとめるよ
まぁ「垂直パリティ」って単語が出てきたら「データ(ビット列)を区切って、区切ったそれぞれに対してパリティビット
(データ内の「1」の個数が偶数か奇数かを表す目印)をくっつけるやり方なんだな~」と お考えください。
おまけ
■訳してみるよ
「垂直」は日本語ですね。
「parity(パリティ)」の意味は「等価」とか「同量」とか「同等」とか「同額」とか「一致」とか「偶奇性」とか「奇偶」とかです。
何となく くっつけると
垂直の奇偶(検査で使うデータ)
となります。
■検索してみる?






