低 ———————————————> 高
byte,short,char-> int -> long -> float -> double
低到高會自動轉換
long—>float並不需要強制轉換
但是float佔4個字節爲什麼比long佔8個字節大呢,因爲底層的實現方式不同。
浮點數的32位並不是簡單直接表示大小,而是按照一定標準分配的。 第1位,符號位,即S 接下來8位,指數域,即E。
剩下23位,小數域,即M,取值範圍爲[1 ,2 ) 或[0 , 1) 然後按照公式: V=(-1)^s * M * 2^E
也就是說浮點數在內存中的32位不是簡單地轉換爲十進制,而是通過公式來計算而來,通過這個公式雖然,只有4個字節,但浮點數最大值要比長整型的範圍要大。