深入瞭解浮點精度(五,小於1的浮點存儲)

上一章:深入瞭解浮點精度(四。嚴格精度的浮點運算)

 

我們在第二章裏提到了一個觀點是:

所有的浮點數都可以表示爲1.xxxx *2^N,x只能表示0和1

這個觀點是正確的嗎?

對於大於一 的浮點來說,完全沒問題,比如4.5 = 100.1 = 1.001 * 2^2

但如果是小於1呢?

例如:0.5

額,額,額~~

然後就鬱悶了,發現怎麼着也轉變不成1.xxxx *2^N。

不要急,我們先打印一下0.5和4.5。

0 12345678 12345678123456781234567
0  01111110  00000000000000000000000 ---0.5

0  10000001 00100000000000000000000 --4.5

嗯,4.5可以理解,但是0.5爲什麼後面全是0呢?真是奇怪了!!!

其實還有一個現象可以解釋這個事情,那就是指數位的首位,4.5的是1,0.5的是0

指數位的0和1其實也代表着指數的正負,如果你能想到負指數的話大概就能夠豁然開朗了。

如下:

0.5 = 1.0 * 2^-1

 

終章~~

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章