ビット演算
低レベル処理
Java言語は低レベルなビット演算もサポートしています
ビットシフトから始まり、ビット論理演算子、ビット代入演算子があります
ビット演算は値を2進数のレベルで行います
とくに、ビットシフトは多くの言語で使われるのでチェックしておきましょう
ビットシフトは、その名のとおり2進数の値を左右にシフトすることができます
2進数の1桁目から各桁の値を一覧してみましょう
class test {
public static void main(String args[]) {
int count,b_shift;
b_shift = 1;
for (count = 0 ; count <= 8 ; count++) {
System.out.println(b_shift);
b_shift <<= 1;
}
}
}
これは、繰り返すたびにb_shiftが左に1シフトされます
つまり、2進数で一桁ずつあがっていくことになります
ここで使われているのはビット代入演算子です
以下の二つはまったく同じ意味です
b_shift = b_shift << 1;
b_shift <<= 1;
各種ビット演算子についてはこちらをご覧ください
さらに、ビット論理演算子を用いれば
値をそのままひっくり返したりすることができます
class test {
public static void main(String args[]) {
System.out.print(13 ^ 3); //1101 XOR 0011 = 1110 = 14
}
}
この例では排他的論理和を使っていますが、もちろん論理積、論理和も可能です
とくにビットシフトは目的によっては重宝されるかもしれません