排他的論理和とは?はいたてきろんりわ
排他的論理和とは、2つの入力が異なるときだけ1、同じときは0になる論理演算。XORまたはEORと書く。同じ値を2回XORすると元に戻る性質があり、簡易な暗号化、ビットの反転、パリティ(誤りを見つけるために1の個数をそろえる検査用のビット)の計算、RAID5(データと復元用のパリティを複数のディスクに分散して書く方式)のパリティ生成など幅広く応用される。
最終更新:2026-10-10
この語が出る過去問を解く →背景
AND と OR だけでは、2つのビットが「違うか」を1回の演算で調べたり、ある値に何かを重ねたあと同じ操作で元へ戻したりすることができない。違うときだけ1になる演算を別に用意しておくと、差のある桁の検出や、鍵を使う暗号化と復元、誤りを見つけるパリティが同じ演算で書ける。
具体例
1010 XOR 0110 = 1100。データDと鍵KでD XOR K = C とすると、C XOR K = D で元に戻る。またA XOR A = 0、A XOR 0 = A が成り立つので、変数の値を作業領域なしで交換する技法にも使われる。
試験での引っ掛け
論理和(OR)は両方1のときも1だが、XORは両方1なら0になる。この1行の違いが真理値表の穴埋めでよく問われる。「排他的」という語からORの一種と早合点しないこと。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:平成29年度 秋期 基本情報技術者試験 午前 問23(IPA)解説で登場
図に示すディジタル回路と等価な論理式はどれか。ここで、論理式中の“・”は論理積を、“+”は論理和を、Xの上線はXの否定を表す。
正解:X = A・(Bの否定) + (Aの否定)・B
要点:NAND出力を各入力とANDしてORすると排他的論理和になる
図の回路はまずAとBそれぞれの否定を論理和しており、これはAとBの論理積の否定(NAND)に等しい。その出力をAと論理積すればAかつBでない項、Bと論理積すればBかつAでない項が得られ、最後にこれらを論理和している。結果としてAとBが異なるときだけ1になる排他的論理和が構成される。
出典:平成30年度 秋期 基本情報技術者試験 午前 問2(IPA)
次に示す手順は,列中の少なくとも一つは1であるビット列が与えられたとき,最も右にある1を残し,他のビットを全て0にするアルゴリズムである。例えば,0010100…
正解:論理積(AND)
要点:A AND (A XOR (A-1)) で最下位の1ビットだけを抽出できる
1を引くと最右の1が0になり、その右側の0が全て1へ変わる。元の値との排他的論理和は最右の1とその右側だけが1のマスクになるため、これと元の値の論理積を取ると最右の1だけが残る。例では00101000と00001111の論理積で00001000となる。
出典:令和元年度 秋期 基本情報技術者試験 午前 問2(IPA)
8ビットの値の全ビットを反転する操作はどれか。
正解:16進表記FFのビット列と排他的論理和をとる。
要点:全ビット反転はFFとの排他的論理和(XOR)で行う
排他的論理和は、片方のビットが1のとき相手のビットを反転させ、0のときはそのまま残す性質をもつ。全ビットが1である16進のFF(2進で11111111)とXORをとれば、8ビットすべてが反転する。論理和は1を作る方向にしか働かず、0とのORは元の値のままなので反転には使えない。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。