【发布时间】:2021-12-04 21:27:03
【问题描述】:
我试图弄清楚浮点数和双精度数在 Java 中是如何工作的。 there说明我们可以将5.3表示为
0 | 10000001 | 01010011001100110011001
但是当我尝试将它写为二进制 java 文字时
float number = 0b01000000101010011001100110011001;
System.out.println(number);
我得到了输出1.0848567E9。
如果我用this question的方式将5.3表示为二进制
int intBits = Float.floatToIntBits(5.3F);
String binary = Integer.toBinaryString(intBits);
System.out.println(binary);
我得到了一个完全令人困惑的结果1000000101010011001100110011010,第一个位置是 1,我认为这意味着一个负号。
有人可以帮助我了解我做错了什么吗? 我可以使用二进制 Java 文字来表示浮点数和双精度数吗?
谢谢。
【问题讨论】:
标签: java floating-point binary literals