C語言各資料型別大小和取值範圍

2022-05-28 05:21:11 字數 1853 閱讀 7243

因為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 無...