java Number小結(jié)


Byte

  • 長度:1byte/8bit
  • 最大值:127 0b0111_1111
  • 最小值:-128 0b1000_0000

Short

  • 長度:2byte/16bit
  • 最大值: 2^15 32767 0x7fff 0b0111_1111_1111_1111
  • 最小值:-2^15 -32768 0x8000 0b1000_0000_0000_0000

Integer

  • 長度:4byte/32bit
  • 最大值: 2^31 -21億 0x7fffffff
  • 最小值:-2^31 -21億 0x80000000

Long

  • 長度:8byte/64bit
  • 最大值: 2^63 約9*10^18
  • 最小值:-2^63

關(guān)于單精浮點數(shù)和雙精浮點數(shù)結(jié)構(gòu)

根據(jù)IEEE754標(biāo)準(zhǔn),F(xiàn)loat和Double的計算公式

在單精度時: 
  V=(-1)^s*2^(E-127)*M    
在雙精度時: 
  V=(-1)^s*2^(E-1023)*M 

以float為例藕甩,float長度32位赊琳,位數(shù)從高到低

  • 第1位為s符號位邮破,1為負(fù)值伸蚯,0為正值
  • 第2-9位共8位為指數(shù)為E狡耻,取值范圍0255借浊,減去偏移量127后减宣,指數(shù)取值范圍-127-128界轩,其中取值0(全0)和255(全1)有特殊用途画饥,因此指數(shù)實際取值范圍-126127
  • 剩余23位為小數(shù)位,表示24數(shù)字浊猾,省略了前導(dǎo)整數(shù)位1抖甘,即一般情況下M≥1.0

(對于Double,E為11位葫慎,M為52位)

當(dāng)指數(shù)位取值1衔彻,小數(shù)位取最小值時薇宠,即0x00800000,獲得float最小正標(biāo)準(zhǔn)值2^(-126)米奸。

關(guān)于最小正標(biāo)準(zhǔn)值與最小正值的區(qū)別昼接,摘抄一段stackoverflow中的回答:

For the single format, the difference between a normal number and a subnormal number is that the leading bit of the significand (the bit to left of the binary point) of a normal number is 1, whereas the leading bit of the significand of a subnormal number is 0. Single-format subnormal numbers were called single-format denormalized numbers in IEEE Standard 754.

也就是說,最小正標(biāo)準(zhǔn)值是保證小數(shù)位前導(dǎo)位為1的最小值悴晰。

非規(guī)格化表示:

當(dāng)指數(shù)位全0時慢睡,小數(shù)位前導(dǎo)整數(shù)位由1變?yōu)?,此時取值范圍:

2^(-126)*2^(-23) ~ 2^(-126)*(1-2^(-23))
此時的最小值也是float的正最小值铡溪,2^(-149)

特殊表示:

  • 當(dāng)指數(shù)位和小數(shù)位全0時漂辐,表示0值,有+0和-0之分棕硫。
  • 當(dāng)指數(shù)位全1髓涯,小數(shù)位不全0時,表示NaN哈扮。Java中用0x7fc00000表示NaN纬纪。
  • 指數(shù)部分全1,小數(shù)部分全0滑肉,表示無窮大包各,Java中用0x7f800000表示正無窮大,0xff800000表示負(fù)無窮大靶庙。

關(guān)于+0和-0,《java語言規(guī)范》中說的很明確:

Positive zero and negative zero compare equal; thus the result of the expression 0.0==-0.0 is true and the result of 0.0>-0.0 is false. But other operations can distinguish positive and negative zero; for example, 1.0/0.0 has the value positive infinity, while the value of 1.0/-0.0 is negative infinity.

對于float類型的+0.0f與-0.0f

  • +0.0 == -0.0
  • +0.0 > -0.0 = false
  • 1.0/+0.0 = 0x7f800000
  • 1.0/-0.0 = 0xff800000

關(guān)于NaN问畅,同樣來自《java語言規(guī)范》:

NaN is unordered, so:

?The numerical comparison operators < , <= , > , and >= return false if either or both operands are NaN (§15.20.1).

? The equality operator == returns false if either operand is NaN.
In particular, (x<y) == !(x>=y) will be false if x or y is NaN.

? The inequality operator != returns true if either operand is NaN (§15.21.1).
In particular, x!=x is true if and only if x is NaN.

  • 對于float值x,y六荒,如果 x,y至少一個為NaN护姆,那么 < , <= , > , >= ,== 都返回false。(x < y) == !(x >= y) 返回false掏击。

  • 當(dāng)且僅當(dāng)x = NaN時卵皂,x!=x返回true。

綜合以上砚亭,可以得到float的正最小值為2^(-149)渐裂,即0x00000001,正最大值為0x7f7fffff钠惩,也即0x7fffffff-0x00000001(正無窮大-正最小值)

Float

  • 長度:4byte/32bit
  • 正最大值:0x7f7fffff柒凉,約3.4*10^38
  • 正最小值:0x00000001,月1.4*10^(-45)

對于Float的equals方法篓跛,比較的是兩個float值的二進(jìn)制表示膝捞,因此+0.0f.equals(-0.0f)返回false,NaN.equals(NaN)返回true,這是FLoat與float不同的地方。

Double

  • 長度:8byte/64bit
  • 正最大值:1.8*10^308
  • 正最小值:4.9*10^(-304)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蔬咬,一起剝皮案震驚了整個濱河市鲤遥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌林艘,老刑警劉巖盖奈,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異狐援,居然都是意外死亡钢坦,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門啥酱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來爹凹,“玉大人,你說我怎么就攤上這事镶殷『探矗” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵绘趋,是天一觀的道長颤陶。 經(jīng)常有香客問我,道長陷遮,這世上最難降的妖魔是什么滓走? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮拷呆,結(jié)果婚禮上闲坎,老公的妹妹穿的比我還像新娘疫粥。我一直安慰自己茬斧,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布梗逮。 她就那樣靜靜地躺著项秉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪慷彤。 梳的紋絲不亂的頭發(fā)上娄蔼,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天,我揣著相機(jī)與錄音底哗,去河邊找鬼岁诉。 笑死,一個胖子當(dāng)著我的面吹牛跋选,可吹牛的內(nèi)容都是我干的涕癣。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼前标,長吁一口氣:“原來是場噩夢啊……” “哼坠韩!你這毒婦竟也來了距潘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤只搁,失蹤者是張志新(化名)和其女友劉穎音比,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體氢惋,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡洞翩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了明肮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片菱农。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖柿估,靈堂內(nèi)的尸體忽然破棺而出循未,到底是詐尸還是另有隱情,我是刑警寧澤秫舌,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布的妖,位于F島的核電站,受9級特大地震影響足陨,放射性物質(zhì)發(fā)生泄漏嫂粟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一墨缘、第九天 我趴在偏房一處隱蔽的房頂上張望星虹。 院中可真熱鬧,春花似錦镊讼、人聲如沸宽涌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽卸亮。三九已至,卻和暖如春玩裙,著一層夾襖步出監(jiān)牢的瞬間兼贸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工吃溅, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留溶诞,地道東北人。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓决侈,卻偏偏與公主長得像螺垢,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容

  • pyspark.sql模塊 模塊上下文 Spark SQL和DataFrames的重要類: pyspark.sql...
    mpro閱讀 9,446評論 0 13
  • 在C語言中,五種基本數(shù)據(jù)類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 3,325評論 0 2
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom閱讀 2,693評論 0 3
  • TF API數(shù)學(xué)計算tf...... :math(1)剛開始先給一個運(yùn)行實例甩苛。tf是基于圖(Graph)的計算系統(tǒng)...
    MachineLP閱讀 3,442評論 0 1
  • 過年了蹂楣,過年了 紅包滿屋跑 糖果把把抓 還有許多胖娃娃 能陪我笑 和我鬧 早晨睜眼雞蛋瘦肉面飄香 晚上睡覺偷偷把牛...
    江心風(fēng)亭閱讀 200評論 0 3