【えっくすおーある】
XOR とは?
💡 ビットの「違いを検出する」演算、暗号化から誤り訂正まで幅広く使われる
📌 このページのポイント
- 「eXclusive OR(排他的論理和)」の略、記号は⊕またはXOR
- 同じ値でXORすると元の値に戻る特性(A XOR B XOR B = A)
- 最も単純な暗号化でデータとキーをXORする(A XOR Key = 暗号文)
- RAID5のパリティ計算、チェックサム計算などにも使われる
XORって何をする演算なの?
2ビットの「違い」を検出する演算だよ。0 XOR 0=0、0 XOR 1=1、1 XOR 0=1、1 XOR 1=0。「両方同じなら0、違うなら1」というシンプルなルール。
暗号化にどう使うの?
RAIDにも使うって聞いたけど?
RAID5ではディスク3台でデータをA・B・(A XOR B)と分散保存する。1台が壊れても「残りの2台でXOR計算」すれば失われたデータを復元できる。XORの「元に戻せる」特性を活用した実用例だよ。
XORって機械学習でも出てくるの?
出てくるよ。「XOR問題」はニューラルネットワークの歴史で重要な転換点だったんだ。1969年にMarvin Minskyが「単層パーセプトロンではXOR演算を学習できない」と証明して、AI研究の冬の時代が始まった。後に多層パーセプトロン(隠れ層を追加)でXOR問題が解けることが示されて、ニューラルネットの復活につながったんだよ。
日常的なプログラミングでXORを使う場面ってある?
一つ有名なテクニックがあるよ。「配列の中で1つだけ重複していない要素を見つける」問題。全要素をXORすると、同じ値同士が打ち消し合って残るのが1つだけの要素になる。追加メモリなし・O(n)で解けるエレガントな解法として、コーディング面接でも頻出の問題だよ。
まとめ:ざっくりこれだけ覚えればOK!
XORって出てきたら「2つのビットが異なれば1、同じなら0の論理演算、暗号化やパリティ計算によく使う」と思えばOK!
📖 おまけ:英語の意味
「eXclusive OR」 = 排他的論理和
💬 「どちらか一方だけが1のとき1」という排他性から「排他的」論理和と呼ばれる。非排他的なORとの違いは「両方が1のとき0」になる点