2017年5月26日 星期五

浮點數的範圍及大小計算

好久以前的文章,剛剛才在草稿夾內被我翻出來...

直到前幾天我才搞清楚浮點數的大小與範圍是怎麼計算的,別問我計概怎麼過的,老實說,我也不知道怎麼過的XD
現在由於電腦的儲存空間實在太大,寫程式的時候誰管他花多少個bits,都馬是float(32"bytes")給它用下去就對了,甚至double float(64"bytes")在儲存的都有,不過當你做的東西與壓縮扯上關係時就不能這麼豪氣的使用這些變數了,必須要斤斤計較才可以,所以下面教大家怎麼計算浮點數的範圍與空間大小
浮點數可以把它想像成整數部分與小數部份,整數部分相信大家應該都會,如果要儲存+ - 128的整數需要8個bits的空間,這應該沒問題,但是小數部份呢?

小數部份就比較麻煩一點,看你想要儲存小數點以下幾位,要儲存越多位數自然所需的空間就越多(廢話),例如要儲存到小數點以下第三位,需要多少空間呢?
大家可以把小數點部份暫時想像成整數,所以想要儲存小數點以下三位就表示要儲存的範圍是0~999,0~999所需要的儲存空間是多少呢?8個bits可以表示0~255、9個可以表示0~511、10個可以表示0~1023,所以要表示0~999所需的最少bits數就是10個
所以要儲存+ - 128精確度到小數點以下3位的浮點數所需的空間就是8+10=18個bits,其他請依此類推

沒有留言: