国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

float和double的數(shù)值怎么保存在二進制中

2019-11-10 18:17:40
字體:
供稿:網(wǎng)友

稍微淺學(xué)過二進制的人,都清楚二進制是個什么東西。我們都了解正整數(shù)是怎么轉(zhuǎn)化成二進制的,那么計算機中,又是怎么保存folat,double類型的數(shù)值的呢?

要像弄清楚這個問題,首先得清楚二進制是怎么表示小數(shù)的。(這一點請注意了)

十進制是怎么表示小數(shù)的呢?

比如,125.456     其實可以分解成 1*10^2+2*10^1+5*10^0+4*10^-1+5*10^-2+6*10^-3

如果用指數(shù)表示的話就是   1.25456E2--------(1+2*10^-1+5*10^-2+4*10^-3+5*10^-4+6*10^-5)*10^2

了解清楚了上面的關(guān)系,那么二進制中的小數(shù)表示應(yīng)該也很清楚了

0.1---------------------------等于--------------------1*2^-1(0.5)

0.01-------------------------等于--------------------1*2^-2(0.25)

0.001-----------------------等于--------------------1*2^-3(0.125)

0.0001---------------------等于--------------------1*2^-4 (0.0625)

0.00001-------------------        --------------------1*2^-5 (0.03125)

那么任意一個帶小數(shù)的二進制表示我們都可以表示成這樣,例如

10001.101----------------等于-------------1*2^4+1*2^0+1*2^-1+1*2^-3

用指數(shù)表示為1.0001101*2^4----------(1+1*2^-4+1*2^-5+1*2^-7)*2^4

接下來就很清楚了,任意一個十進制的數(shù)值都可以表示成或者近似表示成(1+1*2^-n+...1*2^-m)*2^k

例如:8.5=1*2^4+1*2^-1

           5.4約等于4+1+0.25+0.125+0.015625=1*2^2+1*2^0+1*2^-2+1*2^-3+1*2^-6

          (這也解釋了為什么二進制是不能精確表示1/10,因為無論加多少階,1/10都不能被上述樣式精確表示出來。有些時候也會出現(xiàn)能夠除盡的算式,計算機中卻不能除盡例如:double f1=3240.0;        double f2=8.0;        double f3=(f1*(f2/100))/(1+(f2/100));//結(jié)果應(yīng)該為240        System.out.PRintln(f3);輸出結(jié)果為239.99999999999997

       這點參考自:http://www.xue163.com/588880/39103/391036655.html)

總結(jié):現(xiàn)在我們知道了二進制是怎么表示小數(shù),并且任何十進制的數(shù)都可以等于或近似表示成(1+1*2^-m+...1*2^-n)*2^k。

那么剩下的就很簡單了。我們只要知道:

        float有4個字節(jié)32為,首位表示符號,接下來8位表示階數(shù)K,剩下23表示二進制的小數(shù)部分。

        double有8個字節(jié),64位,首位表示符號,11位表示階數(shù)k,剩下表示小數(shù)部分。

更詳細的表示方法,別人已經(jīng)寫了,詳見:

http://blog.csdn.net/gjw198276/article/details/6956244

完??!歡迎吐槽和評論,敬請指出不足之處!??!


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 延川县| 出国| 武汉市| 江口县| 富蕴县| 芒康县| 耒阳市| 西贡区| 固阳县| 建瓯市| 神农架林区| 怀远县| 平阴县| 绥中县| 万盛区| 华安县| 南溪县| 河津市| 新密市| 洮南市| 日照市| 吉木乃县| 禄丰县| 五原县| 淮北市| 蓬安县| 尼勒克县| 贡觉县| 合山市| 新田县| 望奎县| 襄樊市| 朝阳市| 滦平县| 鄯善县| 博野县| 驻马店市| 务川| 九龙城区| 长乐市| 苍梧县|