1. 程式人生 > >java基本型別(數值範圍):浮點的底層表示定義,float計算快一些

java基本型別(數值範圍):浮點的底層表示定義,float計算快一些

Java八種基本型別:

六種數字型別(四個整數型,兩個浮點型),
一種字元型別,
一種布林型。 

具體如下

1、整數:包括int,short,byte,long 
2、浮點型:float,double 
3、字元:char 
4、布林:boolean

對應空間和範圍如下

基本型別 二進位制位數 最小值 最大值 包裝類
boolean
char 16-bit 0(Unicode) 65535(Unicode 2^16-1) java.lang.Character
byte 8-bit -128 +127 java.lang.Byte
short 16-bit -32768(-2^15) 32767 (+2^15-1) java.lang.Short
int 32-bit -2147483648(-2^31) 2147483647 (+2^31-1) java.lang.Integer
long 64-bit -9223372036854775808(-2^63) 9223372036854775807(+2^63-1) java.lang.Long
float 32-bit 1.4E-45(IEEE754規定32位內容) 3.4028235E38(IEEE754) java.lang.Float
double 64-bit 4.9E-324(IEEE754) 1.7976931348623157E308(IEEE754) java.lang.Double
void

引用類分為3種 (類型別,介面型別及陣列型別)

類型別:對類例項的引用;
介面型別:對實現該介面的某個子類例項的引用;
陣列型別:對陣列值的引用,在jvm中陣列是個真正的物件。 

————————————————————————

程式設計時注意確定數值範圍,直接使用對應型別比較好

如32 位時使用 Float 類 節省開發時間

float的底層表示定義

IEEE 754 浮點單精度數字格式定義了儲存浮點數的32位位元(bit)佈局,各bit位具體為:
"一位做符號位,八位留作指數,23位作尾數"。具體如下
SEEEEEEEEMMMMMMMMMMMMMMMMMMMMMMM
其中:
S = 符號位
E = 指數
M = 尾數

Float方法對浮點數與位元的相互轉化

1. 浮點數轉bit

 Float.floatToIntBits(float f) 將一個浮點數轉成一個位元序列。返回一個32位整數,表示你作為引數提供的浮點數的 IEEE 754 位元排列。

2. bit轉浮點數

Float.intBitsToFloat(int bits)將傳入整數作為一個位元序列,按float對應位置規定意義,轉成一個浮點數。

小數計算說明

    java中小數數值計算無法保證絕對精準,只能保證一定精度範圍,比如,兩個double數,不應該使用等號判定是否相等,因為相等的兩個double數儲存在計算機中可能不相等(計算機儲存位數)。
    尤其是除法,只能保留一定範圍的小數,精度取決於該型別在計算機的位數