您好,登錄后才能下訂單哦!
好程序員Java學習路線float在內存中的存儲,最近在講Java基礎,講到數據類型的轉換,提到整數類型長字節類型數據放到短字節類型數據中時,由于字節數不夠,會截斷數據,所以需要程序員手動強制類型轉換,例如將int型的數據放到byte類型中。
后來學生提出一個問題,為什么float只有4個字節,而long有8個字節,將一個long數據放入到一個float中時不需要強制轉換,而將float放到long中卻需要強制轉換呢?
要理解這個問題,首先我們要知道float中可以存儲小數,而long只能存儲整數,所有float的數據放到long里需要強制轉換。
至于為什么long放到float里不需要強制轉換,需要了解float存儲數據的機制,float中存儲數據的時候是以科學計數法的方式計數的,所有能夠存儲的整數大小要超過long類型,于是long數據放到float中是沒有問題的,只是可能會誤差很大而已。
具體來說,float中存儲一個數字時,是按照這樣做的:
float有4個字節,即32個bit
32 31 30-24 23-1
符號位 指數符號位 指數 數字
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。