JavaA2Z

KAB-studio > プログラミング > JavaA2Z > ^演算子とは

^演算子

日本語 排他的ビット和演算子
英語 caret operator
ふりがな はっとえんざんし
フリガナ ハットエンザンシ

解説

2つの整数値を比較し、両ビットが異なる1にする演算子
二項演算子のひとつ。
ビット単位での排他的論理和(XOR)を取る演算子整数値2つを評価し、整数値を返す。左オペランド右オペランドの同位置のビットを比較し、両ビットが異なれば1に、それ以外は0にして返す。
 
ある整数値と、特定の1ビットのみ1の数値を使って^演算子を使用すると、特定のビットの1と0を切り替えることができる。
そのため、&演算子|演算子と共に、ビットフラグの処理に使用されることが多い。

参考サイト

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

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

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

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        int iL = 0x5;
        int iR = 0x3;
        System.out.println( getIntBit( iL ) );
        System.out.println( getIntBit( iR ) );
        // 00000000000000000000000000000101
        // 00000000000000000000000000000011

        // ^演算子で、各ビットのXORを取ります。
        System.out.println( getIntBit( iL ^ iR ) );
        // 00000000000000000000000000000110

        // このように、ビットが異なるものは1、
        // それ以外は0になります。
        // この^演算子を使えば、好きなビットの
        // 1と0を切り替えられます。
    }

    /**
    *   int型変数をビット形式で返します。
    */
    private static String getIntBit( int i )
    {
        // int型変数をビット形式で文字列化します。
        String source = Integer.toBinaryString( i );
        // 左0埋めします。
        StringBuffer strbuf = new StringBuffer();
        forint iF1 = source.length(); iF1 < 32; ++iF1 )
        {
            strbuf.append( "0" );
        }
        strbuf.append( source );

        return strbuf.toString();
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        int iL = 0x5;
        int iR = 0x3;
        System.out.println( getIntBit( iL ) );
        System.out.println( getIntBit( iR ) );
        // 00000000000000000000000000000101
        // 00000000000000000000000000000011

        // ^演算子で、各ビットのXORを取ります。
        System.out.println( getIntBit( iL ^ iR ) );
        // 00000000000000000000000000000110

        // このように、ビットが異なるものは1、
        // それ以外は0になります。
        // この^演算子を使えば、好きなビットの
        // 1と0を切り替えられます。
    }

    /**
    *   int型変数をビット形式で返します。
    */
    private static String getIntBit( int i )
    {
        // int型変数をビット形式で文字列化します。
        String source = Integer.toBinaryString( i );
        // 左0埋めします。
        StringBuffer strbuf = new StringBuffer();
        for( int iF1 = source.length(); iF1 < 32; ++iF1 )
        {
            strbuf.append( "0" );
        }
        strbuf.append( source );

        return strbuf.toString();
    }
}

この単語を含むページ

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

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

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