十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
好程序員Java學(xué)習(xí)路線float在內(nèi)存中的存儲(chǔ),最近在講Java基礎(chǔ),講到數(shù)據(jù)類型的轉(zhuǎn)換,提到整數(shù)類型長(zhǎng)字節(jié)類型數(shù)據(jù)放到短字節(jié)類型數(shù)據(jù)中時(shí),由于字節(jié)數(shù)不夠,會(huì)截?cái)鄶?shù)據(jù),所以需要程序員手動(dòng)強(qiáng)制類型轉(zhuǎn)換,例如將int型的數(shù)據(jù)放到byte類型中。
后來(lái)學(xué)生提出一個(gè)問(wèn)題,為什么float只有4個(gè)字節(jié),而long有8個(gè)字節(jié),將一個(gè)long數(shù)據(jù)放入到一個(gè)float中時(shí)不需要強(qiáng)制轉(zhuǎn)換,而將float放到long中卻需要強(qiáng)制轉(zhuǎn)換呢?
要理解這個(gè)問(wèn)題,首先我們要知道float中可以存儲(chǔ)小數(shù),而long只能存儲(chǔ)整數(shù),所有float的數(shù)據(jù)放到long里需要強(qiáng)制轉(zhuǎn)換。
至于為什么long放到float里不需要強(qiáng)制轉(zhuǎn)換,需要了解float存儲(chǔ)數(shù)據(jù)的機(jī)制,float中存儲(chǔ)數(shù)據(jù)的時(shí)候是以科學(xué)計(jì)數(shù)法的方式計(jì)數(shù)的,所有能夠存儲(chǔ)的整數(shù)大小要超過(guò)long類型,于是long數(shù)據(jù)放到float中是沒(méi)有問(wèn)題的,只是可能會(huì)誤差很大而已。
具體來(lái)說(shuō),float中存儲(chǔ)一個(gè)數(shù)字時(shí),是按照這樣做的:
float有4個(gè)字節(jié),即32個(gè)bit
32 31 30-24 23-1
符號(hào)位 指數(shù)符號(hào)位 指數(shù) 數(shù)字
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開(kāi)啟,新人活動(dòng)云服務(wù)器買(mǎi)多久送多久。