はじめに
この実験では、Java の Double.doubleToRawLongBits()
メソッドを使って double 値の long ビット表現を取得する方法を学びます。このメソッドは java.lang.Double
クラスの一部で、引数のビットを long として返します。
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
この実験では、Java の Double.doubleToRawLongBits()
メソッドを使って double 値の long ビット表現を取得する方法を学びます。このメソッドは java.lang.Double
クラスの一部で、引数のビットを long として返します。
次のコードを使って、Java コードファイルに java.lang.Double
パッケージをインポートします。
import java.lang.Double;
double 値を受け取り、doubleToRawLongBits()
メソッドを使ってそれに相当する long 値をビットで返すメソッドを作成します。Java ファイルに次のコードを追加します。
public long getLongBits(double value) {
return Double.doubleToRawLongBits(value);
}
ここで、いくつかの double 型の数値を作成し、getLongBits()
メソッドを使ってそれらの long 型のビット表現を取得します。次のコードを使って、いくつかの double 型の数値とそれらの long 型のビット表現を作成して表示します。
public static void main(String[] args) {
DoubleToRawLongBitsDemo demo = new DoubleToRawLongBitsDemo();
double a = 10.002;
double b = -60.123456789;
double c = 0.12345;
System.out.println("Double a = " + a);
System.out.println("Double a in binary = " + Long.toBinaryString(demo.getLongBits(a)));
System.out.println("\nDouble b = " + b);
System.out.println("Double b in binary = " + Long.toBinaryString(demo.getLongBits(b)));
System.out.println("\nDouble c = " + c);
System.out.println("Double c in binary = " + Long.toBinaryString(demo.getLongBits(c)));
}
Java ファイルを保存し、ターミナルで次のコマンドを使ってコンパイルします。
javac DoubleToRawLongBitsDemo.java
次に、次のコマンドを使ってバイトコードファイルを実行します。
java DoubleToRawLongBitsDemo
プログラムの出力は次のようになるはずです。
Double a = 10.002
Double a in binary = 0100000000010010001100110011001100110011001100110011001100110011
Double b = -60.123456789
Double b in binary = 1100000001011111010110011011010100001110010100010100001111000110
Double c = 0.12345
Double c in binary = 0011111110110001010010100011110101110000111101011100001010100000
ここでは、getLongBits()
メソッドが与えられた double 型の入力の long 型のビット表現を返すことがわかります。long 型の値をその 2 進数表現に変換するために、Long.toBinaryString()
メソッドを使用しています。
この実験では、Java の Double.doubleToRawLongBits()
メソッドを使って double 型の値の long 型のビット表現を返す方法を学びました。double 型の値を受け取り、その long 型のビット表現を返す Java プログラムを作成しました。また、long 型の値をその 2 進数表現に変換するために Long.toBinaryString()
メソッドも使用しました。