JavaA2Z

KAB-studio > プログラミング > JavaA2Z > 排他的論理和とは

排他的論理和

日本語 排他的論理和
英語 XOR、EOR、exclusive or
ふりがな はいたてきろんりわ
フリガナ ハイタテキロンリワ

解説

2つの真偽値のうち、「真」同士もしくは「偽」同士であれば「偽」を、それ以外は「真」を返す論理演算
 
論理演算のひとつ。
一致していれば「偽」、異なれば「真」を返すひねくれた演算。この「異なれば」という点から「排他的」な論理和という名前が付けられている。
ただし「論理和」に大きな意味はなく、排他的論理和は「排他論理積」と呼ばれることもある。
英語での略称は「eXclusive OR」の略として「XOR演算」と言われる事が多いが、希に「Exclusive OR」の略として「EOR」と書かれることもある。
排他的論理和は、論理和の結果から、論理積の結果を引いた値でもある。
 
Javaでは、booleanでの排他的論理和を計算する演算子は存在しない。
排他的論理和は、論理和論理積を用いると「( bL OR bR ) AND ( NOT bL OR NOT bR )」と記述できるため、||演算子&&演算子を使用して「( bL || bR ) && ( !bL || !bR )」で計算できる。
また、ビット単位での排他的論理和は^演算子を用いて計算できる。

参考サイト

  • (参考サイトはありません)

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // 排他的論理和を計算します。
        // 排他的論理和を直接計算する演算子はないため(ビット単位ではあるけど)、
        // bL XOR bR = ( bL OR bR ) AND ( NOT bL OR NOT bR )
        // という公式を使用します。
        boolean bResult;
        boolean bL;
        boolean bR;

        // 真 XOR 真 → 偽
        bL = true;
        bR = true;
        bResult = ( bL || bR ) && ( !bL || !bR );
        System.out.println( bResult );
        // false

        // 真 XOR 偽 → 真
        bL = true;
        bR = false;
        bResult = ( bL || bR ) && ( !bL || !bR );
        System.out.println( bResult );
        // true

        // 偽 XOR 真 → 真
        bL = false;
        bR = true;
        bResult = ( bL || bR ) && ( !bL || !bR );
        System.out.println( bResult );
        // true

        // 偽 XOR 偽 → 偽
        bL = false;
        bR = false;
        bResult = ( bL || bR ) && ( !bL || !bR );
        System.out.println( bResult );
        // false

        // このように、両方とも同じだとfalseが、
        // 違うとtrueが返ります。
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // 排他的論理和を計算します。
        // 排他的論理和を直接計算する演算子はないため(ビット単位ではあるけど)、
        // bL XOR bR = ( bL OR bR ) AND ( NOT bL OR NOT bR )
        // という公式を使用します。
        boolean bResult;
        boolean bL;
        boolean bR;

        // 真 XOR 真 → 偽
        bL = true;
        bR = true;
        bResult = ( bL || bR ) && ( !bL || !bR );
        System.out.println( bResult );
        // false

        // 真 XOR 偽 → 真
        bL = true;
        bR = false;
        bResult = ( bL || bR ) && ( !bL || !bR );
        System.out.println( bResult );
        // true

        // 偽 XOR 真 → 真
        bL = false;
        bR = true;
        bResult = ( bL || bR ) && ( !bL || !bR );
        System.out.println( bResult );
        // true

        // 偽 XOR 偽 → 偽
        bL = false;
        bR = false;
        bResult = ( bL || bR ) && ( !bL || !bR );
        System.out.println( bResult );
        // false

        // このように、両方とも同じだとfalseが、
        // 違うとtrueが返ります。
    }
}

この単語を含むページ

「みだし」に含まれているページ

「解説」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2006/01/20
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。