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中不同於類的特殊型別。它們是我們程式設計中使用最頻繁的型
java中short、int、long、float、double取值範圍
對於java的資料型別,既熟悉又陌生,於是整理了這篇文件。最近的面試讓我開始注意細節,細節真的很重要。一、分析基本資料型別的特點,最大值和最小值。1、基本型別:int 二進位制位數:32包裝類:java.lang.Integer最小值:Integer.MIN_VALUE=
Java中float的取值範圍
規格化表示 java中的浮點數採用的事IEEE Standard 754 Floating Point Numbers標準,該標準的規範可以參考http://blog.csdn.net/treeroot/articles/94752.aspx. float佔用4個位元組,和int是一樣,
Java中float/double取值範圍與精度
Java浮點數 浮點數結構 要說清楚Java浮點數的取值範圍與其精度,必須先了解浮點數的表示方法,浮點數的結構組成,之所以會有這種所謂的結構,是因為機器只認識01,你想表示小數,你要機器認識小數點這個東西,必須採用某種方法,比如,簡單點的,float
Java中float的取值範圍為什麼是那麼大?
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
java中float和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 是整型,對應我們數學上認識的數值為整數,就是沒有小數點的數。 在計算機系統中,我們為這種型別的數定了一個範圍(其實我們為每一種型別都定了範圍,至於這個範圍是多少.....(當然不能那麼快說)。 為什麼要有這個範圍的限制呢,這是為了物盡所用,不能浪費。打個比方,我
關於Java中Byte型別的取值範圍是-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標準對Java中float值和double值的規定
rac tro zh-cn 分享圖片 編號 如何 ins font 指數 在Java語言中,我們可以使用float和double這兩種基本數據類型來表示特定的數據。 這兩種數據類型,本質上是浮點數(floating-point number),浮點是一種對於實數的近似值數值