原文:
1. 長度
型別名型別位元組
表示範圍
char
字元型1
-128 ~127
unsigned char
無符號字元型
10 ~255
signed char
有符號字元型(與字元型相同)
1-128 ~127
int整型
*與機器有關
unsigned int
無符號整型
*與機器有關
signed int
有符號整型(與整型相同)
*與機器有關
short int
短整型2
-32,768~ 32,767
unsigned short int
無符號短整型
20~65,535
signed short int
有符號短整型(與短整型相同)
2-32,768~ 32,767
long int
長整型4
-2,147,483,648 ~2,147,483,647
signed long int
有符號長整型(與長整型相同)
4-2,147,483,648 ~ 2,147,483,647
unsigned long int
無符號長整型
40~4,294,967,295
float
浮點型4
3.4e +/- 38 (7位有效數字)
double
雙精度型
81.7e +/- 308 (15位有效數字)
long double
長雙精度型
101.2e +/- 4932 (19位有效數字)
注:unsigned和signed只用於修飾char和int,且signed修飾詞可以省略。當用unsigned修飾詞時,後面的型別說明符可以省略。例如:
signed int n; //與"int n;"等價
signed char ch; //與"char ch;"等價
unsigned int n; //與"unsigned n;"等價
unsigned char ch; //與"unsigned ch;"等價
short只用於修飾int,且用short修飾時,int可以省略,即:
short int n; //與"short n;"等價
long只能修飾int和double。當用long修飾int時,int可以省略,即:
long int n; //與"long n;"等價
int和unsigned int型別占用乙個機器乙個字(word)的位元組。在16位作業系統上,它們占用2個位元組;在32位作業系統上,它們占用4個位元組;64位系統,佔8個位元組。
2. 精度
如果乙個雙目運算子兩邊的運算元型別不同,先要將它們轉換為相同的型別,即較低型別轉換為較高型別,然後再參加運算。所謂型別的高低,跟所佔的儲存空間大小有直接關係,所佔儲存空間越大的型別,級別越高。
圖中橫向的箭頭表示必須的轉換,如兩個float型數參加運算,雖然它們型別相同,但仍要先轉換成double型再進行運算,結果亦為double型。縱向箭頭表示當運算子兩邊的運算元為不同型別時的轉換,如乙個long型資料與乙個int型資料一起運算,需要先將int型資料轉換為long型,然後兩者再進行運算,結果為long型。所有這些轉換都是由系統自動進行的,使用時只需了解結果的型別即可。
C 基本資料型別大小及表示範圍
ansi c c 基本資料型別 type size 數值範圍 無值型void 0 byte 無值域布林型 bool 1 byte true false 有符號短整型 short int signed short int 2 byte 32768 32767 無符號短整型 unsigned short...
C 基本資料型別大小及表示範圍
ansi c c 基本資料型別 type size 數值範圍 無值型void 0 byte 無值域布林型 bool 1 byte true false 有符號短整型 short int signed short int 2 byte 32768 32767 無符號短整型 unsigned short...
C語言中資料型別的表示範圍
問題 sizeof int 2,int的表示範圍為什麼是 2 15 2 15 1?答 對於有符號數,最高位為符號位。二進位制原碼最大值為0111111111111111 2 15 1,最小值為 1111111111111111 2 15 1 而0分為 0和 0,即0000000000000000和 ...