C++數據類型及所佔字節數與它取值範圍的關係

數據類型

類型 關鍵字
布爾型 bool
字符型 char
整型 int
浮點型 float
雙浮點型 double
無類型 void
寬字符型 wchar_t

數據類型的大小

類型 範圍
char 1 個字節 -128 到 127 或者 0 到 255
unsigned char 1 個字節 0 到 255
signed char 1 個字節 -128 到 127
int 4 個字節 -2147483648 到 2147483647
unsigned int 4 個字節 0 到 4294967295
signed int 4 個字節 -2147483648 到 2147483647
short int 2 個字節 -32768 到 32767
unsigned short int 2 個字節 0 到 65,535
signed short int 2 個字節 -32768 到 32767
long int 8 個字節 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
signed long int 8 個字節 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
unsigned long int 8 個字節 0 到 18,446,744,073,709,551,615
float 4 個字節 精度型佔4個字節(32位)內存空間,+/- 3.4e +/- 38 (~7 個數字)
double 8 個字節 雙精度型佔8 個字節(64位)內存空間,+/- 1.7e +/- 308 (~15 個數字)
long double 16 個字節 長雙精度型 16 個字節(128位)內存空間,可提供18-19位有效數字。
wchar_t 2 或 4 個字節 1 個寬字符

從上表可得知,變量的大小會根據編譯器和所使用的電腦而有所不同。

一般來說,假設整型數據類型佔的二進制位數n,如果表示無符號整數則取值範圍是[0,2^n-1 ] ,如果表示有符號整數,[-2^(n-1) , 2^(n-1) - 1]。

例:以計算無符號短整數(unsigned short int)爲例

1Byte=8bit,故2Byte=16bit,n=16

無符號短整數則取值範圍是[0,2^n-1 ],計算[0,2^16-1]=[0,65535].

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