The doubleToRawLongBits() method of Java Double class is a built-in function in java that 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.
Syntax:
public static long doubleToRawLongBits(double val)
Parameter: The method accepts only one parameter val which specifies a double precision floating-point number.
Return Values: The function returns the bits that represent the floating-point number. Below are the special cases:
- If the argument is positive infinity, the result is 7ff0000000000000L.
- If the argument is negative infinity, the result is 0xfff0000000000000L.
- If the argument is NaN, the result is 0x7ff8000000000000L.
Below programs illustrates the use of Double.doubleToRawLongBits() method:
Program 1:
// Java program to demonstrate // Double.doubleToRawLongBits() method import java.lang.*;
class Gfg1 {
public static void main(String args[])
{
double val = 1 .5d;
// function call
long answer = Double.doubleToRawLongBits(val);
// print
System.out.println(val + " in raw long bits: "
+ answer);
}
} |
1.5 in raw long bits: 4609434218613702656
Program 2:
// Java program to demonstrate // Double.doubleToRawLongBits() method import java.lang.*;
class Gfg1 {
public static void main(String args[])
{
double val = Double.POSITIVE_INFINITY;
double val1 = Double.NEGATIVE_INFINITY;
double val2 = Double.NaN;
// function call
long answer = Double.doubleToRawLongBits(val);
// print
System.out.println(val + " in raw long bits: "
+ answer);
// function call
answer = Double.doubleToRawLongBits(val1);
// print
System.out.println(val1 + " in raw long bits: "
+ answer);
// function call
answer = Double.doubleToRawLongBits(val2);
// print
System.out.println(val2 + " in raw long bits: "
+ answer);
}
} |
Infinity in raw long bits: 9218868437227405312 -Infinity in raw long bits: -4503599627370496 NaN in raw long bits: 9221120237041090560
Reference: https://docs.oracle.com/javase/7/docs/api/java/lang/Double.html#doubleToRawLongBits(double)