Java 類型轉換細節
- 2019 年 12 月 26 日
- 筆記
這裡以 byte 類型為主,很多方法其實通用於 int long 這種類型。
一些非常簡單,沒有迷惑性的東西,這裡就跳過了,這篇主要講的是在轉化中比較容易迷惑的問題。
String 類型轉 Byte 類型
我們都知道 String 類型的轉換其他任意的基本數據類型,基本都有一個 XXX.valueOf()
方法。通過這個方法就可以把 String 類型轉化為 XXX 類型了。以 Byte 類型為例。
使用這個方法要注意:
- String 類型要符合數據類型
- String 的數不能超過 byte 類型的取值範圍(-128 -127)超過這個範圍就會拋出異常了。
- Byte.valueOf(String string,int radix) 這個方法,這個方法的意思是,string 被當做是 radix 進位的數。比如 Byte.valueOf("10",16) 結果是 16
- Byte.decode(String nm) 方法,這個方法是自動識別 nm 的進位的。nm 是 ox 、oX、# 開頭就認為是 16 進位的數。 0 開頭就認為是 8 進位的數值
長類型轉短類型(保留低位元組)
以 int 轉 short 為例子:我們知道 int 是 4 個位元組,shor 是 2 個位元組。
我們又知道這些數值在電腦中都是以二進位來儲存的。
假如 int a = 65535 那麼在電腦中的存儲方式就是:0000FFFF(這裡方便起見用 16 進位表示)
short s = (shor)a 這樣強制轉換,Java 會把 a 的高 2 個位元組刪除,保留低 2 個位元組給 s 於是 s 在電腦中就變成了 FF ,就是 -1 了。