JavaA2Z

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

&演算子

日本語 ビット積演算子
英語 and per se and operator
ふりがな あんどえんざんし、あんぱさんどえんざんし
フリガナ アンドエンザンシ、アンパサンドエンザンシ

解説

2つの整数値を比較し、両ビットとも1なら1にする演算子
二項演算子のひとつ。
ビット単位での論理積を取る演算子整数値2つを評価し、整数値を返す。左オペランド右オペランドの同位置のビットを比較し、両ビットとも1であれば1、それ以外は0にして返す。
 
ある整数値と、特定の1ビットのみ1の数値を使って&演算子を使用すると、その結果は、ある整数値のそのビットが0であれば0、1であれば0以外が返ってくる。このように、特定のビットが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

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

        // このように、両方とも1のビットののみ1、
        // それ以外は0になります。

        // たとえば、右から3番目のビットが1か0か
        // 調べる場合。0100 == 0x4を使用します。
        if( ( iL & 0x4 ) == 0 )
        {
            System.out.println( "オフ" );
        }
        else
        {
            System.out.println( "オン" );
        }
        // オン

        if( ( iR & 0x4 ) == 0 )
        {
            System.out.println( "オフ" );
        }
        else
        {
            System.out.println( "オン" );
        }
        // オフ
    }

    /**
    *   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

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

        // このように、両方とも1のビットののみ1、
        // それ以外は0になります。

        // たとえば、右から3番目のビットが1か0か
        // 調べる場合。0100 == 0x4を使用します。
        if( ( iL & 0x4 ) == 0 )
        {
            System.out.println( "オフ" );
        }
        else
        {
            System.out.println( "オン" );
        }
        // オン

        if( ( iR & 0x4 ) == 0 )
        {
            System.out.println( "オフ" );
        }
        else
        {
            System.out.println( "オン" );
        }
        // オフ
    }

    /**
    *   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/06/22
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。