排他的論理和
用語
「排他的論理和」(XOR、eXclusive OR)についての説明です。
説明
排他的論理和とはどういう意味ですか?」
排他的論理和は、2つの入力のうち、どちらか片方だけが真であるときに真となり、両方とも真や両方とも偽のときに偽となる論理演算です。つまり、2つの入力が異なる場合に真となり、同じ場合に偽となる論理演算です。
具体的な例で説明してください。
排他的論理和とは、2つのことが同じか違うかを調べる方法です。例えば、りんごとみかんが同じ色か違う色かを調べるときに使います。りんごとみかんが同じ色なら、答えは「いいえ」です。りんごとみかんが違う色なら、答えは「はい」です。このように、2つのことが違うときに「はい」、同じときに「いいえ」と答える方法を排他的論理和と言います。
排他的論理和はどのような場面で使われますか?
排他的論理和は、ビット演算や暗号化などに応用されます。ビット演算では、2つのビット列の各桁ごとに排他的論理和を行い、結果のビット列を得ます。暗号化では、平文と鍵との排他的論理和を取ることで暗号文を生成したり、逆に暗号文と鍵との排他的論理和を取ることで平文を復号したりします。
排他的論理和は、どのように使うと便利なのでしょうか?
排他的論理和は、2つの入力が異なる場合に真となる性質を持っています。この性質を利用することで、例えば、あるビット列と別のビット列の差分を取ることができます。また、暗号化においては、平文と鍵との排他的論理和を取ることで、暗号文が予測不能な値になるため、安全性が高くなります。
まとめ
「排他的論理和」(XOR、eXclusive OR)は、2つの値のどちらか片方だけが真である場合に真となり、両方が真または両方が偽の場合に偽となる論理演算です。つまり、2つの値が異なる場合に真を返す演算です。
A | B | A XOR B |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
例えば、2進数の場合、同じ桁同士の値が異なる場合に1を、同じ場合に0を返します。排他的論理和は、ビット演算に用いられることが多く、ビット同士の比較やフラグの設定などに用いられます。
また、暗号化においても、平文と鍵の排他的論理和を取ることで暗号文を生成することができます。逆に、暗号文と鍵の排他的論理和を取ることで平文を復号することができます。
ある値に対して、排他的論理和を2回実行すると、元の値に戻ります。
「0100 XOR 1111」→「1011」→「1011 XOR 1111」→「0100」