java中的double和float类型数据的最大值是怎么算出来的

为什么java中单精度浮点型数据最大值是2的128次方 双精度浮点型最大值是2的1024次方 这是怎么算出来的

float长度值32比特也就是32位,有一位是符号位
第一个bit表示符号位
2-9这8个表示的是2的指数,但是这里有个指数偏移值的概念
剩下的是小数部分

http://www.233.com/JAVA/Instructs/060530/095611815.html
http://zh.wikipedia.org/zh-cn/IEEE_754
这两个加在一起说的就比较明白了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-01
java代码定义
public static final float MAX_VALUE = 0x1.fffffeP+127f; // 3.4028235e+38f
public static final double MAX_VALUE = 0x1.fffffffffffffP+1023; // 1.7976931348623157e+308

Float.MAX_VALUE 单精度浮点型数据最大值
Double.MAX_VALUE 双精度浮点型最大值
相似回答