はじめに
この実験では、Java の Double.doubleToRawLongBits() メソッドを使って double 値の long ビット表現を取得する方法を学びます。このメソッドは java.lang.Double クラスの一部で、引数のビットを long として返します。
必要なパッケージをインポートする
次のコードを使って、Java コードファイルに java.lang.Double パッケージをインポートします。
import java.lang.Double;
doubleToRawLongBits() 用のメソッドを作成する
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() メソッドも使用しました。



