1. 程式人生 > >java 中float和double型別資料取值詳解

java 中float和double型別資料取值詳解

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^1282^128 

 double型別:-2^10242^1024