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
这两个加在一起说的就比较明白了
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 双精度浮孙态点型最大值