HOWTO · Java
Java 右シフト->>>
この記事では、Java で>>>演算子を使用する方法を紹介します。
Java 言語では、>>> は符号なし右ビットシフト演算子としてよく知られています。符号付き演算子とは異なり、末尾の場所を常にゼロ値で埋めることができます。例を使って、次の操作を理解しましょう。
a と b の 2つの数を考えてみましょう。与えられた 2つの値は以下のとおりです。
a = 20
b = -20
a = 00000000000000000000000000010100
b = 11111111111111111111111111101100
ビット単位の右シフト演算子の使用例は、値の除算または 2 による変数です。
次に、符号なし右シフト演算子、つまり a>>>1 を適用しましょう。演算子は、変数のすべてのビットを内部的に右側にシフトします。末尾の位置をゼロ値で埋めます。
以下は、同じことを理解するためのコードブロックです。
public class RightShiftOperator {
public static void main(String[] args) {
System.out.println("The value of a and b before >>> operator");
int x = 20;
int y = -20;
System.out.println(Integer.toBinaryString(x));
System.out.println(Integer.toBinaryString(y));
System.out.println("The value of a and b after applying >>> operator");
System.out.println(Integer.toBinaryString(x >>> 1));
System.out.println(Integer.toBinaryString(y >>> 1));
int divX = x >>> 1;
int divY = y >>> 1;
System.out.println("Half the value of x: " + divX);
System.out.println("Half the value of y: " + divY);
}
}
上記のコードブロックでは、変数 a と b がそれぞれ値 20 と-20 で初期化されます。
Integer クラスの toBinaryString() 関数は、出力ストリームメソッドに適用されます。その機能は、整数変数をバイナリ文字列に変換することです。
このメソッドは、Java 1.2 バージョンで使用できます。
Integer クラスには、プライマリ int 値をそれぞれのラッパーオブジェクトに変換する関数があるため、プリミティブ値へのラッパーとして機能します。
メソッドの入力は、文字列値に変換される int 変数です。関数に渡されるパラメーターは、演算子とともに変数です。
最後に、操作が実行された変数が出力されます。
>>> 演算子を使用したコードの出力は次のとおりです。
The value of a and b before >>> operator
00000000000000000000000000010100
11111111111111111111111111101100
The value of a and b after applying >>> operator
00000000000000000000000000001010
01111111111111111111111111110110
Half the value of x: 10
Half the value of y: 2147483638