你如何在java中获得浮点数的尾数?
发布时间:2020-12-15 00:58:58 所属栏目:Java 来源:网络整理
导读:我正在尝试获取浮点数的尾数(只是为了学习),但它没有按预期工作. 说5.3的尾数是53,对吗?我试过这段代码: System.out.println(Float.floatToIntBits(5.3f) 0x7FFFFF); 它打印2726298.它不应该删除指数位并留下53?我尝试了很多东西,但总会发生这种情况.我在
我正在尝试获取浮点数的尾数(只是为了学习),但它没有按预期工作.
说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单精度标准) 单精度表: 0 | 10000001 | 01010011001100110011001 符号= 0Exp = 129尾数= 2726297 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |