code.club

 找回密碼
 立即註冊
搜索
查看: 6909|回復: 1
打印 上一主題 下一主題

c語言數值資料大小的問題

[複製鏈接]
跳轉到指定樓層
樓主
發表於 2015-5-21 16:15:39 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最後由 enter 於 2015-5-21 16:17 編輯

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

回復

使用道具 舉報

沙發
 樓主| 發表於 2015-5-21 19:40:26 | 只看該作者
專家的回答如下:

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

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

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

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

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

小黑屋|手機版|Archiver|code.club  

GMT+8, 2024-11-13 15:43 , Processed in 0.078565 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表