我相信大家都知道,浮点数不会表示为二进制浮点数。实际上,它们以二进制形式存储在系统中,其中每个32或64位数字对应于某个浮点数。具体来说,参考双字精度浮点数,我可以用任何编程语言得到第n个双精度数。就像在,是否有任何编程语言中的方法/函数允许我输入253
并获得以11111101
形式存储为二进制文件的双精度?
答案 0 :(得分:2)
这是一个Java测试程序,我认为你做了你想要的。 Double.longBitsToDouble(in)
返回由与in
相同的位模式表示的双精度。
public class Test {
public static void main(String[] args) {
testIt(0);
testIt(253);
testIt(-1);
}
public static void testIt(long in) {
System.out.println(in + ": " + Double.longBitsToDouble(in));
}
}
输出:
0: 0.0
253: 1.25E-321
-1: NaN