先頭へ戻る

排他的論理和 | Programming Place Plus 用語集

Programming Place Plus トップページ -- 用語集

先頭へ戻る

名称


解説

論理演算の1つで、2つの命題のうちのどちらか一方だけが真のときに真となり、それ以外のときには偽となる演算のことです。

プログラミングにおいては、^ や xor を使って書き表すことが多いです。C言語C++ では、単独の ^ はビット単位の排他的論理和を取ることを表しています。

C言語の ^ については、C言語編第49章で取り上げています(C++ でも基本的に同じです)。

たとえば、「変数 x のが 0以上か?」と「変数 y の値が 0 か?」という2つの命題に対して排他的論理和を取る場合、x >= 0 xor y == 0 といった記述になります。2つの条件式のどちらか一方だけが満たされている場合にだけ、全体として真 (true) になり、両方とも満たされているか、両方とも満たされていないときには、全体として偽 (false) になります。

C言語や C++ においては、条件式で排他的論理和を使うために、ブール値を得られるような演算子はありません(前述した ^ を使って、ビット単位の排他的論理和を得ることしかできない)。排他的論理和 x xor y は、論理積(and) と論理否定(not) を使って、(not x) and y or x and (not y) と変形できるので、これを利用して記述できます。

bool b1 = x >= 0;  // 命題1
bool b2 = y == 0;  // 命題2

// 命題1・2の排他的論理和
if (!b1 && b2 || b1 && !b2) {
    // 真
}
else {
    // 偽
}


参考リンク

更新履歴


用語集のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
Twitter でツイート Twitter をフォロー LINE で送る
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー