我理解消化后的浮点数存储
昨天開始學(xué)習(xí)C語言,記錄下學(xué)習(xí)筆記:
?
1. 規(guī)定單精度浮點(diǎn)數(shù)用32bit表示(4Byte):
首位為符號(hào)位(0正1負(fù)),
8位指數(shù)位(表示小數(shù)位應(yīng)該乘以2的多少次方),
23位小數(shù)位(十進(jìn)制原值用二進(jìn)制表示并規(guī)整為科學(xué)計(jì)數(shù)法后帶一位整數(shù)的二進(jìn)制小數(shù),由于整數(shù)位必須為1所以省略整數(shù)部分,只保存小數(shù)部分)。
?
2.?規(guī)定雙精度浮點(diǎn)數(shù)用64bit表示(8Byte):
首位為符號(hào)位,
11位指數(shù)位,
52位小數(shù)位。
?
3. IEEE規(guī)定指數(shù)部分需要加上偏移值??,其中的??為存儲(chǔ)指數(shù)的比特的長(zhǎng)度,?=8時(shí)偏移值為127,e=11時(shí)偏移值為1023。
?
4. 以下圖為例:
0.15625(10)= (2^-3 + 2^-5)(10) = 0.00101(2) = (1.01 * 2^-3)(2),
所以階碼為 (-3 + (2^(8-1) - 1))(10)?= (-3 + 127)(10) = 124(10) = 0111 1100(2)
小數(shù)部分為 1.01 后補(bǔ)21個(gè)0后的小數(shù)部分,即形成下圖所示的存儲(chǔ)格式。
此為單精度浮點(diǎn)數(shù)的存儲(chǔ)方式,雙精度浮點(diǎn)數(shù)的存儲(chǔ)方式同理,只不過階碼的移碼是1023(+1023(10))。
截圖來源:http://www.runoob.com/cprogramming/c-variables.html
?
關(guān)于IEEE754的更多詳情參見百度百科IEEE754標(biāo)準(zhǔn):https://baike.baidu.com/item/IEEE%20754/3869922?fr=aladdin
轉(zhuǎn)載于:https://www.cnblogs.com/mobius2018/p/9842575.html
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的我理解消化后的浮点数存储的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32速度---网页讲解
- 下一篇: flask+redis实现抢购(秒杀)功