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個字節,但浮點數最大值要比長整型的范圍要大。