JavaA2Z

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

|演算子

日本語 縦棒演算子
英語 vertical bar operator、pipe operator
ふりがな たてぼうえんざんし、ぱいぷえんざんし
フリガナ タテボウエンザンシ、パイプエンザンシ

解説

2つの整数値を比較し、どちらかのビットが1なら1にする演算子
二項演算子のひとつ。
ビット単位での論理和を取る演算子整数値2つを評価し、整数値を返す。左オペランド右オペランドの同位置のビットを比較し、どちらかのビットが1であれば1、両ビットとも0であれば0にして返す。
 
|演算子を使用すると、特定のビットのみ1の整数値「ビットフラグ」をふたつ以上組み合わせて「複数のビットフラグが立っている状態」にすることができる。
そのため、&演算子と共に、ビットフラグの処理に使用されることが多い。

参考サイト

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

(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

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

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

        // |演算子は、ビットフラグをくっつけるときに
        // 使います。
        iL = 0x4;
        iR = 0x8;
        System.out.println( getIntBit( iL ) );
        System.out.println( getIntBit( iR ) );
        // 00000000000000000000000000000100
        // 00000000000000000000000000001000

        // 0x4は右から3ビット目だけ、
        // 0x8は右から4ビット目だけが1になっています。

        // このふたつを組み合わせます。
        System.out.println( getIntBit( iL | iR ) );
        // 00000000000000000000000000001100

        // このように、|演算子でビットを融合させることができます。
    }

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

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

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

        // |演算子は、ビットフラグをくっつけるときに
        // 使います。
        iL = 0x4;
        iR = 0x8;
        System.out.println( getIntBit( iL ) );
        System.out.println( getIntBit( iR ) );
        // 00000000000000000000000000000100
        // 00000000000000000000000000001000

        // 0x4は右から3ビット目だけ、
        // 0x8は右から4ビット目だけが1になっています。

        // このふたつを組み合わせます。
        System.out.println( getIntBit( iL | iR ) );
        // 00000000000000000000000000001100

        // このように、|演算子でビットを融合させることができます。
    }

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