【发布时间】:2014-06-17 21:59:46
【问题描述】:
我正在尝试获取浮点数的尾数(只是为了学习),但它没有按预期工作。
说 5.3 的尾数是 53,对吗?我试过这段代码:
System.out.println(Float.floatToIntBits(5.3f) & 0x7FFFFF);
它打印了2726298。它不应该删除指数位并留下 53 吗?我尝试了很多东西,但这总是会发生。我在这里做错了什么?
【问题讨论】:
-
IEEE 浮点指数的底数是 2,而不是 10。
-
“说 5.3 的尾数是 53,对吧?”。错误的。它是二进制的,不是以 10 为底的
-
你在考虑尾数是 decimal 点 - 它是一个 binary 点...
-
@user3580294 什么意思?
-
5.3f不是5.3 x 10^1浮点数。这是0b01010011001100110011010 x 2^10000001(不知道这些是否是确切的值,但我认为我所拥有的是正确的球场)
标签: java