Java @ mock
ビット演算子
最終更新:
Bot(ページ名リンク)
-
view
ビット演算子
Javaにおいてビット演算子とはビット単位の操作を行うための演算子です。
ビット演算子には以下の演算子を使います。
ビット演算子には以下の演算子を使います。
ビット演算子 | 使用例 | 機能 |
---|---|---|
>> | A >> B | Aを右にBビットシフト |
<< | A << B | Aを左にBビットシフト |
>>> | A >>> B | Aを右にBビット論理シフト |
& | A & B | AとBについてビットごとのAND |
| | A | B | AとBについてビットごとのOR |
^ | A ^ B | AとBについてビットごとの排他的OR |
~ | ~A | Aについてビットごとの反転 |
ビット演算子 : bit operator // bitwise operator bit : ビット、2進数(binary number)の単位【語源】binary digitの略 bitwise : ビット単位の、ビット位置の、ビットごとの binary : 2値の、2進法の digit : (アラビア)数字、〔数字の〕けた
らしいです。
ビット演算子 使用例 1
BitOperatorSample1.java
class BitOperatorSample1 { public static void main([[String]][] args) { // 0001 0000 [[byte]] byteOperand = 16; byte shiftOperand = 2; // 0001 0000 → 0000 0100 System.out.println("byteOperand >> shiftOperand : " + (byteOperand >> shiftOperand)); // 0001 0000 → 0100 0000 System.out.println("byteOperand << shiftOperand : " + (byteOperand << shiftOperand)); } }
実行結果
C:\java>javac BitOperatorSample1.java C:\java>java BitOperatorSample1 byteOperand >> shiftOperand : 4 byteOperand << shiftOperand : 64
ビット演算子 使用例 2
BitOperatorSample2.java
class BitOperatorSample2 { public static void main(String[] args) { // 1111 1111 1111 1111 1111 1111 1111 [[int]] intOperand = -1; /* * 1111 1111 1111 1111 1111 1111 1111 → 0011 1111 1111 1111 1111 1111 1111 1111 * (2の30乗-1=1073741823) */ System.out.println("intOperand >>> 2 : " + (intOperand >>> 2)); } }
実行結果
C:\java>javac BitOperatorSample2.java C:\java>java BitOperatorSample2 intOperand >>> 2 : 1073741823
ビット演算子 使用例 3
BitOperatorSample3.java
class BitOperatorSample3 { public static void main(String[] args) { int intOperand1 = 19; int intOperand2 = 21; System.out.println(intOperand1 + " : " + Integer.toBinaryString(intOperand1)); System.out.println(intOperand2 + " : " + Integer.toBinaryString(intOperand2)); System.out.println("19 & 21 : " + Integer.toBinaryString(intOperand1 & intOperand2)); System.out.println("19 | 21 : " + Integer.toBinaryString(intOperand1 | intOperand2)); System.out.println("19 ^ 21 : " + Integer.toBinaryString(intOperand1 ^ intOperand2)); System.out.println("~19 : " + Integer.toBinaryString(~intOperand1)); } }
実行結果
C:\java>javac BitOperatorSample3.java C:\java>java BitOperatorSample3 19 : 10011 21 : 10101 19 & 21 : 10001 19 | 21 : 10111 19 ^ 21 : 110 ~19 : 11111111111111111111111111101100