1. 程式人生 > >數據類型轉換-運算符

數據類型轉換-運算符

運算 操作數 nbsp println 浮點 順序 ava float 執行

##基本數據類型轉換
- 默認順序是
* byte->short->int->long->float->double
- 自動提升規則(針對二元操作符)
* 所有的byte,short,char型會自動提升為int型
* 若一個操作數是long類型,則另一個操作數也會轉換為long類型,計算的結果類型也是long類型
* float類型,double類型跟long類型的提升規則一樣

- 註意
* 默認浮點型是double類型,默認整型是int類型
* 舉例說明:

```

float f1=4.4;//編譯會報錯;因為4.4默認是double類型;可以強制轉換解決問題
float f2=4.4f;//定義float型時要加f
long d1=100;//默認轉型:100將會由int轉換為long類型
long d2=100L;//定義long類型時加L


```

## 理解代碼 i=i++




```

int i=1;
i=i++;
System.out.println("i="+i)//i=1;

分析:i=i++;
1.首先在內存中定義一個臨時變量temp存儲i的值
int temp=i;//temp=1;
2.執行i++;
i++;//i=2;
3.再將臨時變量temp值賦值給i
i=temp;//i=1

總結:是先存儲i,再執行i++,最後執行賦值操作

練習:i= i+++++i; //i=4;


```

##數據類型補充的小問題:
- 1: 在定義Long或者Float類型變量的時候,要加L或者f。
整數默認是int類型,浮點數默認是double。

- 2 byte,short在定義的時候,他們接收的其實是一個int類型的值。
這個是自己做了一個數據檢測的,如果不再它們的範圍內,就報錯。

2:byte值的問題

byte b1 = 127;
byte b2 = (byte)128; //-128(從-128~127一直循環)128-127=1;即從第一個 -128 開始循環
byte b3 = (byte)129; //-127
byte b4 = (byte)130; //-126

byte的範圍:-128 ~ 127

128:10000000
-128:10000000 (這裏的1即是符號位,也是數值位)

- 3:數據類型轉換之默認轉換
byte,short,char -- int -- long -- float -- double

long: 8個字節
float:4個字節

A:它們底層的存儲結構不同。
B:float表示的數據範圍比long的範圍要大
long:2^63-1
float:3.4*10^38 > 2*10^38 > 2*8^38 = 2*2^3^38 = 2*2^114 > 2^63-1

4:Java語言中的字符char可以存儲一個中文漢字嗎?為什麽呢?

可以。因為java語言中的字符占用兩個字節。

Java語言采用的是Unicode編碼。



數據類型轉換-運算符