1. 程式人生 > >各種資料型別儲存最大值

各種資料型別儲存最大值

intlong都是用32位來儲存最大值和最小值分別2147483647109), -2147483648

long long 是用64位來儲存最大值和最小值分別為92233720368547758071018),-9223372036854775808

float的最大值和最小值分別為3.40282e+0381038),1.17549e-03810-38);

double的最大值和最小值分別為1.79769e+30810308),2.22507e-30810-308)。

根據組成原理中的內容,其中int和long採用補碼儲存,231-1即為最大能表示的範圍,long long型別同理,c++中64位可用

 __int64來定義。

float 和 double兩種型別的儲存遵循IEEE-754

符號位 階碼 尾數


其中符號位表示正負,並與尾數隔開;階碼則用移碼來表示(移碼相當於真值加上一個常數7FH,3FFH等);尾數部分規格化來表示,即非“0”的有效位最高位總是“1”,再IEEE中此1省略。

經過計算,我們可知double最大值確實可以到10308,儘管精度可能非常小