code.club

標題: c語言數值資料大小的問題 [打印本頁]

作者: enter    時間: 2015-5-21 16:15
標題: c語言數值資料大小的問題
本帖最後由 enter 於 2015-5-21 16:17 編輯

請問一下先進,既然 unsigned long 和 float 都是用占用 4 byte 的長度,為何二者能表示的數值差那麼多?
unsigned long 只能表示到 4294967295,float 則可以表達到 +-3.4e38,亦即是正負339999995214436424907732413799364296704.000000 ?


作者: enter    時間: 2015-5-21 19:40
專家的回答如下:

簡單的回答
整數是直接儲存數值
浮點是儲存表示式,而不是實際的數值
浮點表示的是近似值

32 位元
1bit 正負號
8bit 指數(次方)
23bit 尾數(小數點後面的數字)

64位元
1bit 正負號
11bit 指數(次方)
52bit 尾數(小數點後面的數字)

因為浮點是使用表示式儲存,所以計算方式也不同。浮點運算能力就是評定 CPU 運算能力很重要的一環。





歡迎光臨 code.club (http://code.club/) Powered by Discuz! X3.2