一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

java語(yǔ)言

Java中float類(lèi)型的范圍及其與十六進(jìn)制的轉換方法

時(shí)間:2024-12-06 20:53:01 java語(yǔ)言 我要投稿
  • 相關(guān)推薦

Java中float類(lèi)型的范圍及其與十六進(jìn)制的轉換方法

  float占用4個(gè)字節,和int是一樣,也就是32bit。

  第1個(gè)bit表示符號,0表示正數,1表示負數,這個(gè)很好理解,不用多管。

  第2-9個(gè)bit表示指數,一共8為(可以表示0-255),這里的底數是2,為了同時(shí)表示正數和負數,這里要減去127的偏移量。這樣的話(huà)范圍就是(-127到128),另外全0和全1作為特殊處理,所以直接表示-126到127。

  剩下的23位表示小數部分,這里23位表示了24位的數字,因為有一個(gè)默認的前導1(只有二進(jìn)制才有這個(gè)特性)。

  最后結果是:(-1)^(sign) * 1。f * 2^(exponent)

  這里:sign是符號位,f是23bit的小數部分,exponent是指數部分,最后表示范圍是(因為正負數是對稱(chēng)的,這里只關(guān)心正數)

  2^(-126) ~~ 2(1-2^(-24)) * 2^127

  這個(gè)還不是float的取值范圍,因為標準中還規定了非規格化表示法,另外還有一些特殊規定。

  非規格化表示:

  當指數部分全0而且小數部分不全0時(shí)表示的是非規格化的浮點(diǎn)數,因為這里默認沒(méi)有前導1,而是0。

  取值位0。f * 2^(-126),表示范圍位 2^(-149)~~ (1-2^(-23)) * 2^(-126) 這里沒(méi)有考慮符號。這里為什么是-126而不是-127? 如果是-127的話(huà),那么最大表示為

  2^(-127)-2^(-149),很顯然2^(-127) ~~2^(-126) 就沒(méi)法表示了。

  其他特殊表示

  1。當指數部分和小數部分全為0時(shí),表示0值,有+0和-0之分(符號位決定),0x00000000表示正0,0x80000000表示負0。

  2。指數部分全1,小數部分全0時(shí),表示無(wú)窮大,有正無(wú)窮和負無(wú)窮,0x7f800000表示正無(wú)窮,0xff800000表示負無(wú)窮。

  3。指數部分全1,小數部分不全0時(shí),表示NaN,分為QNaN和SNaN,Java中都是NaN。

  結論:

  可以看出浮點(diǎn)數的取值范圍是:2^(-149)~~(2-2^(-23))*2^127,也就是Float。MIN_VALUE和Float。MAX_VALUE。

【Java中float類(lèi)型的范圍及其與十六進(jìn)制的轉換方法】相關(guān)文章:

java類(lèi)型的字符轉換的方法02-26

Java中對象類(lèi)型如何進(jìn)行轉換06-25

Java數據類(lèi)型轉換08-04

C語(yǔ)言類(lèi)型轉換的方法08-05

Java如何完成數據類(lèi)型轉換02-27

Java 2.1 java基本類(lèi)型的轉換和運算符05-29

使用Java的枚舉類(lèi)型的方法03-14

詳解Java枚舉類(lèi)型enum及其使用01-06

Java/Android引用類(lèi)型及其使用分析08-08

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看