Java.lang.Double.doubleToRawLongBits() Method


The java.lang.Double.doubleToRawLongBits() method returns a representation of the specified floating-point value according to the IEEE 754 floating-point "double format" bit layout, preserving Not-a-Number (NaN) values.It includes the following important points −

  • If the argument is positive infinity, the result is 0x7ff0000000000000L.
  • If the argument is negative infinity, the result is 0xfff0000000000000L.
  • If the argument is NaN, the result is the long integer representing the actual NaN value. Different from doubleToLongBits method, doubleToRawLongBits does not collapse all the bit patterns encoding a NaN to a single "canonical" NaN value.


Following is the declaration for java.lang.Double.doubleToRawLongBits() method

public static long doubleToRawLongBits(double value)


value − This is a double precision floating-point number.

Return Value

This method returns the bits that represent the floating-point number.




The following example shows the usage of java.lang.Double.doubleToRawLongBits() method.

package com.tutorialspoint;

import java.lang.*;

public class DoubleDemo {

   public static void main(String[] args) {

      Double d = new Double("10.50");
      //returns the bits that represent the floating-point number
      System.out.println("Value = " + d.doubleToRawLongBits(2.5d));  

Let us compile and run the above program, this will produce the following result −

Value = 4612811918334230528