java中浮点数

java中浮点数的存储是由四个字节(32位)来完成:如下图

java中浮点数_第1张图片

四个字节总共32位,下标从0开始到31,第31位是符号位,0表示正数,1表示负数。

第23位到第30位是幂指数,第0位到第22位是有效位

可以知道,无穷大是幂指数都为1,即第23位到30位都为,有效位都为零,编写以下代码:

public class lesson2 {
	
		public static void main(String []args)
		{
			System.out.println(Float.intBitsToFloat(0x7f800000));
		}

}
在这段代码中,7是111(28--30),f是1111(24-27),8是1000(20--23),即幂指数都是1,

运行以后  输出:infinity(无穷大);

那最大的浮点数就是比无穷大小一点,即幂指数前7位都是1,第八位(即第23位)是0,有效位全都是1,

此即为最大的浮点数,编写以下代码

public class lesson2 {
	
		public static void main(String []args)
		{
			System.out.println(Float.intBitsToFloat(0x7f7fffff));
		}

}
<pre name="code" class="java"><pre name="code" class="java">运行以后,输出:3.4028235E38
那最小的浮点数是多少呢?很简单,即幂指数都为0,有效位只有最后一位(即第一位)为1,编写以下代码:
 
 
public class lesson2 {
	
		public static void main(String []args)
		{
			System.out.println(Float.intBitsToFloat(0x00000001));
		}

}
 
 
 
 

运行以后,输出:1.4E-45




你可能感兴趣的:(java)