你如何在java中获得浮点数的尾数?

前端之家收集整理的这篇文章主要介绍了你如何在java中获得浮点数的尾数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试获取浮点数的尾数(只是为了学习),但它没有按预期工作.

说5.3的尾数是53,对吗?我试过这段代码

System.out.println(Float.floatToIntBits(5.3f) & 0x7FFFFF);

它打印2726298.它不应该删除指数位并留下53?我尝试了很多东西,但总会发生这种情况.我在这做错了什么?

解决方法

符合IEEE标准的单精度公式为:
(-1)^sign + 1.Mantissa x 2^(Exponent - Bias)

所以5.3 base 10是101.0100110011001100110011 base 2

101.0100110011001100110011 = 1.010100110011001100110011 * 2 ^ 2

具有偏差= 127的2 ^ 2 = 2 ^(exp – 偏差)(根据IEEE单精度标准)
so:exp – 127 = 2 => exp = 129 base 10或10000001 base 2

单精度表:

0 | 10000001 | 01010011001100110011001

符号= 0Exp = 129尾数= 2726297

原文链接:https://www.f2er.com/java/239759.html

猜你在找的Java相关文章