• ベストアンサー

排他的論理和

今日論理回路の実験をしてて思ったのですが、、、、排他的論理和(EOR)って ビット計算の結果だけなのでしょうか?ANDなら掛け算と繰り上がりとか桁上がりの数以外にどんなことにつかわれるのでしょうか? もしかしてそれだけでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • h_sakaki
  • ベストアンサー率18% (175/970)
回答No.4

>でもなんのことを言ってるのかさっぱりわかりません。 説明が舌足らずで済みませんでした。 とりあえずシリアル通信の説明をしたかったのですが #2のように、必ず偶数ビットが1のデータを送る場合に ・の後のように前が奇数だったら1を偶数だったら0を付加して送信します。(2進数の0~7はわかりましたか?) これには、まず一番目と二番目のEORを取ります 00と11は0 10と01は1になりますね これと3番目のEORを取ると 同様に 00/11→0 10/01→1 となり、パリティビットが出来ます。 下の場合 0/3/5/6は元が偶数なので0 1/2/4/7は元が奇数なので1 となります(・の後ろです) これを受信側でも 1番目と2番目のEOR→仮に5番 3番目と4番目のEOR→仮に6番 5番と6番のEOR----答え 答えが1になってしまうと送られてきたでーたは奇数だったということになり、必ず通信エラーがあります →通常は再送してもらいます。 答えが0の場合はデータ数は偶数だったということになり、 エラーは出しません。(2ビット間違えている可能性があってもです) 長々と書きましたが、わかりましたか? あと、ymmasayanさんの書かれた物ですが、 (1)はアドレスデコーダなどによく使用します   複数の同じカードをさしてもマザーボードで設定する事により、設定変更なしに差し替えても問題なく動作します。 (3)は正論理・負論理の切り替えなどに相手の仕様が不明な時など、保険に入れることがあります。 →入力バッファのかわりにEORを入れておき反対側をまとめてプルアップしておく(反転)ここをGNDにジャンパすることにより(そのまま通過)です。

その他の回答 (4)

  • h_sakaki
  • ベストアンサー率18% (175/970)
回答No.5

#4の自己補足です 十進と二進の対応を忘れてました 0:000 1:001 2:010 3:011 4:100 5:101 6:110 7:111 です、RS232(COMポート)などは スタートビット(これから送るぞ)+データ7または8ビット+パリティビット(偶数・奇数・無し)+ストップビットの順に送信します(データを送る順番は実際にはLSBから送信されるので、右から左に送られますますが概念を理解する場合は左から右で考えて下さい) また、#4で書いている偶数/奇数は1の数が偶数個か奇数個かと言うことですので3や5は偶数個です

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.3

EORは、一見へそ曲がりですが、いろんな使われ方をしています。 言葉は悪いが世間に身を隠した落し胤。時々、キラッと光る。 本論に戻って、 (1)一致回路に使います。一致してればゼロ。1ビットでも違っていれば≠0となります。 (2)パリティ生成に使います。(解説済みなので省略)。最近ではRAID(安価ディスクアレイ)でも注目を浴びています。 (3)ビット反転、特に1の補数や2の補数を求めるときにとてもお世話になります。 あえて、もう一度いいます。EORは日陰者ではありません。十分、お役に立っています。

amuro_78
質問者

お礼

ありがとうございます。

  • h_sakaki
  • ベストアンサー率18% (175/970)
回答No.2

パリティとは めんどくさいので、3ビット+1パリティで説明します (通常の通信では7/8ビット) まず、3ビットで表される数値は十進で0~7となります それらに対してパリティを付加すると(偶数にします→奇数の場合は・の後ろの1と0を逆に読んでください) 000・0 001・1 010・1 011・0 100・1 101・0 110・0 111・1 となります、これはデータの個数を一定にすることにより、通信線路でノイズなど異常があった場合に検出をする事が出来、信頼性が増します。 (送り側と 受け側で同様に排他論理和の回路を作成して検出します) ※検出出来るのは奇数ビットが化けた場合で、偶数ビットの場合は検出出来ないのが欠点です。 また、メモリ-のパリティ付きも原理的には同じです。

amuro_78
質問者

お礼

ありがとうございます、 でもなんのことを言ってるのかさっぱり わかりませんん、

  • h_sakaki
  • ベストアンサー率18% (175/970)
回答No.1

EORは乱数を作ったり、パリティジェネレータなどに使用されます。 乱数は、シフトレジスタの一部を入力に返します。 パリティジェネレータは数本の排他論理和を取って、パリティビットに使用します。

amuro_78
質問者

補足

ありがとうございます。 <パリティジェネレータは数本の排他論理和を取って、パリティビットに使用します。 よく意味がわからないのですが、、、、

関連するQ&A