ビット演算子

ビット演算子とはプログラム言語が、開発者にバイナリーデータ(2進数表記)のビット処理を表現するためにシフト演算子と共に用意された構文の1つです。

ビット演算子は、整数型(byte,short,int,long)に利用できます。

シフト演算子の構文

演算子 構文 説明
&(ビットAND) 整数型 & 整数型 対比対象の整数型のbit(2進数)の各桁を対比し、
双方の値が「1」の場合、処理結果の同一桁数に「1」を付与する。
|(ビットOR) 整数型 | 整数型 対比対象の整数型のbit(2進数)の各桁を対比し、
どちらかの値が「1」の場合処理結果の同一桁数を「1」を付与する。
^(ビットXOR) 整数型 ^ 整数型 対比対象の整数型のbit(2進数)の各桁を対比し、
双方値が一致する場合には、同一桁数を「0」を付与する。
不一致の場合には、「1」を付与する。
~(ビットNOT) ^ 整数型 bit(2進数)の反転処理です。
bitの「0」を「1」に、「1」を「0」に変換して処理結果とする。

シフト演算子サンプル

論理演算子サンプル
    byte a = 0b00010101;
    byte b = 0b00111010;
    System.out.println(Integer.toBinaryString( a ) );
    System.out.println(Integer.toBinaryString( b ) );
    byte resultAnd = (byte) (a & b);
    System.out.println(Integer.toBinaryString( resultAnd ) );
    byte resultOR= (byte) (a | b);
    System.out.println(Integer.toBinaryString( resultOR ) );
    byte resultXOR =  (byte) (a ^ b);
    System.out.println(Integer.toBinaryString( resultXOR ) );
    byte resultNOT =  (byte) ~a;
    System.out.println(Integer.toBinaryString( resultNOT ) );
			
出力結果
    10101
    111010
    10000
    111111
    101111
    11111111111111111111111111101010
		
桁数揃え
    00010101  a
    00111010  b
    00010000  a AND b
    00111111  a OR b
    00101111  a XOR b
    11101010  NOT a
		

桁数を揃えた結果が期待された値になっているかと思います。