您的位置:首页 > 编程语言 > Java开发

java 中float和double类型数据取值详解

2016-10-24 16:23 357 查看
1、定义标准 IEEE754



在IEEE754标准中进行了单精度浮点数(float)和双精度数浮点数(double)的定义。

float有32bit,double有64bit。它们的构成包括符号位、指数位和尾数位。

2、存储结构

  float: 1bit(符号位)+8bit(指数位)+23bit(尾数位)
  double:1bit(符号位)+11bit(指数位)+23bit(尾数位)

这些位的构成如下 
种类-------符号位-------------指数位----------------尾数位----
float---第31位(占1bit)---第30-23位(占8bit)----第22-0位(占23bit)
double--第63位(占1bit)---第62-52位(占11bit)---第51-0位(占52bit)

3、取值范围定义

取值范围主要看指数部分:
float的指数部分有8bit(2^8),由于是有符号型,所以得到对应的指数范围-128~128。
double的指数部分有11bit(2^11),由于是有符号型,所以得到对应的指数范围-1024~1024。 

4、取值

 float类型: -2^128
2^128 

 double类型:-2^10242^1024
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java基础 标准