1. 程式人生 > >Java中float的取值範圍

Java中float的取值範圍

規格化表示
       java中的浮點數採用的事IEEE Standard 754 Floating Point Numbers標準,該標準的規範可以參考http://blog.csdn.net/treeroot/articles/94752.aspx.
      float佔用4個位元組,和int是一樣,也就是32bit.
      第1個bit表示符號,0表示正數,1表示負數,這個很好理解,不用多管.
      第2-9個bit表示指數,一共8為(可以表示0-255),這裡的底數是2,為了同時表示正數和負數,這裡要減去127的偏移量.這樣的話範圍就是(-127到128),另外全0和全1作為特殊處理,所以直接表示-126到127.
     剩下的23位表示小數部分,這裡23位表示了24位的數字,因為有一個預設的前導1(只有二進位制才有這個特性).
     最後結果是:(-1)^(sign) * 1.f * 2^(exponent)
     這裡:sign是符號位,f是23bit的小數部分,exponent是指數部分,最後表示範圍是(因為正負數是對稱的,這裡只關心正數)
    2^(-126) ~~ 2(1-2^(-24)) * 2^127
    這個還不是float的取值範圍,因為標準中還規定了非規格化表示法,另外還有一些特殊規定.
   
非規格化表示
:
    當指數部分全0而且小數部分不全0時表示的是非規格化的浮點數,因為這裡預設沒有前導1,而是0.
    取值位0.f * 2^(-126),表示範圍位 2^(-149)~~ (1-2^(-23)) * 2^(-126) 這裡沒有考慮符號.這裡為什麼是-126而不是-127? 如果是-127的話,那麼最大表示為

相關推薦

JAVA基本型別範圍

最近使用Netty與C++程式進行TCP/IP通訊,遇到一個解包和封包的問題。其中涉及到JAVA與C++資料型別的對應關係。於是蜻蜓點水的看了一個文章,感覺挺具體的於是直接轉過來 基本型別,或者叫做內建型別,是JAVA中不同於類的特殊型別。它們是我們程式設計中使用最頻繁的型

javashort、int、long、float、double範圍

對於java的資料型別,既熟悉又陌生,於是整理了這篇文件。最近的面試讓我開始注意細節,細節真的很重要。一、分析基本資料型別的特點,最大值和最小值。1、基本型別:int 二進位制位數:32包裝類:java.lang.Integer最小值:Integer.MIN_VALUE=

Javafloat範圍

規格化表示       java中的浮點數採用的事IEEE Standard 754 Floating Point Numbers標準,該標準的規範可以參考http://blog.csdn.net/treeroot/articles/94752.aspx.      float佔用4個位元組,和int是一樣,

Javafloat/double範圍與精度

Java浮點數 浮點數結構   要說清楚Java浮點數的取值範圍與其精度,必須先了解浮點數的表示方法,浮點數的結構組成,之所以會有這種所謂的結構,是因為機器只認識01,你想表示小數,你要機器認識小數點這個東西,必須採用某種方法,比如,簡單點的,float

Javafloat範圍為什麼是那麼大?

float佔用4個位元組,和int是一樣,也就是32bit.       第1個bit表示符號,0表示正數,1表示負數,這個很好理解,不用多管.       第2-9個bit表示指數,一共8為(可以表示0-255),這裡的底數是2,為了同時表示正數和負數,這裡要減去127的

Java float範圍

.    float佔用4個位元組,和int是一樣,也就是32bit.    第1個bit表示符號,0表示正數,1表示負數,這個很好理解,不用多管.    第2-9個bit表示指數,一共8位(可以表示0-255),這裡的底數是2,為了同時表示正數和負數,這裡要減去127的偏移量.這樣的話範圍就是(-127到1

javafloat和double的範圍

float:4位元組(32bit),IEEE 754. 範圍:[-3.40282346638528860e+38 , -1.40129846432481707e-45] ∪ [1.40129846432481707e-45 ~ 3.40282346638528860e+38]

java為什麽byte的範圍是-128到+127

進制數 符號位 為什麽 絕對值 www .html tar 同學 自己 概念:java中用補碼表示二進制數,補碼的最高位是符號位,最高位為“0”表示正數,最高位為“1”表示負數。正數補碼為其本身;負數補碼為其絕對值各位取反加1

C#float範圍和精度分析

windows系統 weight 3.5 ans adding 發生 mage 深入 wid 本文實例分析了C#中float的取值範圍和精度。分享給大家供大家參考。具體分析如下: float類型的表現形式: 默認情況下,賦值運算符右側的實數被視為 double。 因此

java int 型別的範圍

int 是整型,對應我們數學上認識的數值為整數,就是沒有小數點的數。 在計算機系統中,我們為這種型別的數定了一個範圍(其實我們為每一種型別都定了範圍,至於這個範圍是多少.....(當然不能那麼快說)。 為什麼要有這個範圍的限制呢,這是為了物盡所用,不能浪費。打個比方,我

關於JavaByte型別的範圍是-128~127的理解

學習C語言的時候對int類型範圍理解得不透徹,所以通過網上查詢資料,結合大牛的講解分析了一下byte型別的範圍,希望可以幫到大家。 1、知識理解 在計算機內,定點數有3種表示法:原碼、反碼和補碼

Java,為什麼byte型別的範圍為-128~127?

在學習Java基礎語法的時候,初學者的我們可能都會有這麼一個疑問為什麼byte型別的取值範圍為什麼是[-128,127]而不是[-127,127]。01111111表示最大的數值:127,因為第一位是符號位,所以11111111應該是最小的數值:-127,不是這

Java語言基礎long與float範圍誰大誰小

結論 float的取值範圍比long大 驗證 public class Test1_DataTypeConversion { public static void main(Stri

java float和double型別資料詳解

1、定義標準 IEEE754 在IEEE754標準中進行了單精度浮點數(float)和雙精度數浮點數(double)的定義。 float有32bit,double有64bit。它們的構成包括符號位

CDM遍歷域及其約束條件、範圍、引用它的項目

最大值 next folder values active valid cit proc not Option ExplicitValidationMode = TrueInteractiveMode = im_BatchDim mdl ‘當前mod

JAVA基本類型大小與範圍?

false 特殊 數據類型 字節 true ima 指令 它的 ges 布爾類型boolean比較特殊,盡管Java虛擬機定義了boolean類型,但虛擬機對boolean類型的支持是有限的,沒有為boolean值單獨設計JVM指令。操作布爾值的表達式在編譯之後,它使用的

Java byte 類型的範圍是-128~127

com 基本數據類型 single static 數據 數據類型 blank tle -128 為什麽Java byte 類型的取值範圍是-128~127 : http://blog.163.com/[email protected]/blog/static/47

Java數據類型及對應範圍

小數 日常 java 方法 而且 div 滿足 archive 大寫 Java數據類型及對應取值範圍 在Java中,數據類型分為兩大種:基本數據類型(值類型)和包裝類型(引用數據類型)。基本數據類型不是對象,不能調用toString()、hashCode()、getCl

Java如何數據各個位上的

Java取值思想/思想:取數據各個位上的值需求:在控制臺輸出所有的"水仙花數"分析:所謂的水仙花數是指一個三位數,其各位數字的立方和等於該數本身比如:153=111 + 555 + 333/class ForDemo4{public static void main (String[] a

如何理解IEEE 754標準對Javafloat和double的規定

rac tro zh-cn 分享圖片 編號 如何 ins font 指數 在Java語言中,我們可以使用float和double這兩種基本數據類型來表示特定的數據。 這兩種數據類型,本質上是浮點數(floating-point number),浮點是一種對於實數的近似值數值