Java Double类的doubleToRawLongBits()方法是Java中的内置函数,该函数根据保留Not-a-Number(NaN)值的IEEE 754浮点“double format”位布局返回指定浮点值的表示形式。
用法:
public static long doubleToRawLongBits(double val)
参数:该方法仅接受一个参数val,该参数指定双精度浮点数。
返回值:该函数返回代表浮点数的位。以下是特殊情况:
如果参数为正无穷大,则结果为7ff0000000000000L。
如果参数为负无穷大,则结果为0xfff0000000000000L。
如果参数为NaN,则结果为0x7ff8000000000000L。
以下程序说明了Double.doubleToRawLongBits()方法的使用:
示例1:
// Java program to demonstrate
// Double.doubleToLongBits() method
import java.lang.*;
class Gfg1 {
public static void main(String args[])
{
double val = 1.5d;
// function call
long answer = Double.doubleToRawLongBits(val);
System.out.println(val + " in raw long bits: "
+ answer);
}
}
输出:
1.5 in raw long bits: 4609434218613702656
示例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);
System.out.println(val + " in raw long bits: "
+ answer);
// function call
answer = Double.doubleToRawLongBits(val1);
System.out.println(val1 + " in raw long bits: "
+ answer);
// function call
answer = Double.doubleToRawLongBits(val2);
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