因為cpu的差異,各系統中的資料型別所佔的位元組數(bytes)不同,二進位制位數(bit)也不同。那麼怎樣才能知道自己系統的資料型別的位元組數,位數呢?
授之以魚不如授之以漁,大家可以自己從電腦裡獲取這些資訊。
首先我們知道1個位元組等於8個位,可以用sizeof()關鍵字設計以下程式解決:
/*獲取當前作業系統的位元組數(bytes)和位數(bit)*/
#includeint main()
由此
可得知此系統的整數(int)所佔位元組數是4,位數為32
而取值範圍則可以用極限值符號(極限值符號定義在 limits.h 標頭檔案中,以下會詳細介紹)來獲得
下面以char型別為例:
/*獲取char資料型別的取值範圍*/
#include#includeint main()
有符號整數型別
型別名稱 位元組數 取值範圍
signed char 1 -2^7 ~ 2^7-1
short int 或 short 2 -2^15 ~ 2^15-1
int 4 -2^31 ~ 2^31-1
long int 或 long 4 -2^31 ~ 2^31-1
long long int 或 long long 8 -2^63 ~ 2^63-1
無符號整數型別
型別名稱 位元組數 取值範圍
unsigned char 1 0 ~ 2^8
unsigned short int 或 unsigned short 2 0 ~ 2^16
unsigned int 4 0 ~ 2^32
unsigned long int 或 unsigned long 4 0 ~ 2^32
unsigned long long int 或 unsigned long long 8 0 ~ 2^64
浮點型別
型別名稱 位元組數 取值範圍
float 4 -/+3.4e38(精確到6位小數)
double 8 -/+1.7e308(精確到15位小數)
long double 12 -/+1.19e4932(精確到18位小數)
極限值符號
表示有符號整數型別的極限值符號
型別名稱 下限 上限
char char_min char_max
short shrt_min shrt_max
int int_min int_max
long long_min long_max
long long llong_min llong_max
表示無符號整數型別的極限值符號
型別名稱 下限 上限
unsigned char 0 uchar_max
unsigned short 0 ushrt_max
unsigned int 0 uint_max
unsigned long 0 ulong_max
unsigned long long 0 ullong_max
表示浮點型別的極限值符號
型別名稱 下限 上限
float flt_min flt_max
double dbl_min dbl_max
long double ldbl_min ldbl_max……
C語言各資料型別大小和取值範圍
因為cpu的差異,各系統中的資料型別所佔的位元組數 bytes 不同,二進位制位數 bit 也不同。那麼怎樣才能知道自己系統的資料型別的位元組數,位數呢?授之以魚不如授之以漁,大家可以自己從電腦裡獲取這些資訊。首先我們知道1個位元組等於8個位,可以用sizeof 關鍵字設計以下程式解決 獲取當前作業...
C 各資料型別取值範圍(備忘)
各資料型別取值範圍 bool型為布林型,佔1個位元組,取值0或1。bool型為int型,一般認為佔4個位元組,取值true false error。sbyte型為有符號8位整數,佔1個位元組,取值範圍在128 127之間。bytet型為無符號16位整數,佔2個位元組,取值範圍在0 255之間。sho...
C 中各資料型別取值範圍
1.字元型別 型別 名稱位元組數 範圍signed char 有符號字元型 1 128 127 unsigned char 無符號字元型 10 255 2.整數型別 型別名稱 位元組數範圍 signed int 有符號整型 4 2147483648 2147483647 unsigned int 無...