Java Double example to get long bits of a Double using doubleToLongBits

By candid | Posted :
Dec 7, 2016
| Updated :
Dec 7, 2016

public static long doubleToRawLongBits(double value)

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.

Bit 63 (the bit that is selected by the mask 0x8000000000000000L) represents the sign of the floating-point number. Bits 62-52 (the bits that are selected by the mask 0x7ff0000000000000L) represent the exponent. Bits 51-0 (the bits that are selected by the mask 0x000fffffffffffffL) represent the significand (sometimes called the mantissa) of the floating-point number.

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. Unlike the doubleToLongBits method, doubleToRawLongBits does not collapse all the bit patterns encoding a NaN to a single "canonical" NaN value.

In all cases, the result is a long integer that, when given to the longBitsToDouble(long) method, will produce a floating-point value the same as the argument to doubleToRawLongBits.

Program:

package com.candidjava;
public class DoubleDoubleToLongBits
{
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));
}
}

Output:

Value = 4612811918334230528

Descripiton:

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

Parameters:

value - a double precision floating-point number.

Returns:

the bits that represent the floating-point number.