Java の DoubleToRawLongBits メソッド

JavaJavaBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Java の Double.doubleToRawLongBits() メソッドを使って double 値の long ビット表現を取得する方法を学びます。このメソッドは java.lang.Double クラスの一部で、引数のビットを long として返します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/ProgrammingTechniquesGroup(["Programming Techniques"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/ConcurrentandNetworkProgrammingGroup(["Concurrent and Network Programming"]) java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java/BasicSyntaxGroup -.-> java/output("Output") java/BasicSyntaxGroup -.-> java/type_casting("Type Casting") java/ProgrammingTechniquesGroup -.-> java/method_overloading("Method Overloading") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/packages_api("Packages / API") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/wrapper_classes("Wrapper Classes") java/ConcurrentandNetworkProgrammingGroup -.-> java/working("Working") java/SystemandDataProcessingGroup -.-> java/math_methods("Math Methods") java/SystemandDataProcessingGroup -.-> java/object_methods("Object Methods") java/SystemandDataProcessingGroup -.-> java/system_methods("System Methods") subgraph Lab Skills java/output -.-> lab-117603{{"Java の DoubleToRawLongBits メソッド"}} java/type_casting -.-> lab-117603{{"Java の DoubleToRawLongBits メソッド"}} java/method_overloading -.-> lab-117603{{"Java の DoubleToRawLongBits メソッド"}} java/packages_api -.-> lab-117603{{"Java の DoubleToRawLongBits メソッド"}} java/wrapper_classes -.-> lab-117603{{"Java の DoubleToRawLongBits メソッド"}} java/working -.-> lab-117603{{"Java の DoubleToRawLongBits メソッド"}} java/math_methods -.-> lab-117603{{"Java の DoubleToRawLongBits メソッド"}} java/object_methods -.-> lab-117603{{"Java の DoubleToRawLongBits メソッド"}} java/system_methods -.-> lab-117603{{"Java の DoubleToRawLongBits メソッド"}} end

必要なパッケージをインポートする

次のコードを使って、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() メソッドも使用しました。