一:數值類型的大雜燴
(1)short、int 和 long 類型都表示整型值。存儲空間的大小不同
一般, short 類型為半個機器字長,int 類型為一個機器字長,而 long 類型為一個或兩個機
器字長(在 32 位機器中 int 類型和 long 類型通常字長是同樣的)。
(2)常量的定義以及表示范圍:
unsigned int 0~4294967295 就是2^32-1int -2147483648~2147483647 就是2^(-31) ~ 2^31-1
unsigned long 0~4294967295 就是2^32-1
long -2147483648~2147483647 就是2^(-31) ~ 2^31-1
long long的最大值:9223372036854775807 就是2^63-1
long long的最小值:-9223372036854775808 就是2^(-63)
unsigned long long的最大值:18446744073709551615 就是2^64-1
__int64的最大值:9223372036854775807 就是2^63-1
__int64的最小值:-9223372036854775808 就是2^(-63)
unsigned __int64的最大值:18446744073709551615 就是2^64-1
(3)c 和 c++的類型所占的字節數
32位編譯器
char :1個字節
char*(即指針變量): 4個字節(32位的尋址空間是2^32, 即32個bit,也就是4個字節。同理64位編譯器) int * 也是 4字節
short int : 2個字節
int: 4個字節
unsigned int : 4個字節
float: 4個字節
double: 8個字節
long: 4個字節
long long: 8個字節
unsigned long: 4個字節
64位編譯器
char :1個字節
char*(即指針變量): 8個字節 int * 也是 8字節
short int : 2個字節
int: 4個字節
unsigned int : 4個字節
float: 4個字節
double: 8個字節
long: 8個字節(32位和64位變得就是long,其它的均沒有變化啊)
long long: 8個字節
unsigned long: 8個字節
二:常值常數類型的 ----- u / U 和 l/L 以及ul/UL的幾點說明
(1)使用條件
1. 數值常數有:整型常數、浮點常數;
2. 僅僅有數值常數才有后綴說明;
3. 數值常數后綴不區分字母大寫和小寫。
(2)整型常數的表示形式有:
十進制形式、以0開頭的八進制形式、以0x開頭的十六進制形式,無二進制形式。整型常數默認是signed int的。
對整型常數進行類型轉換的后綴僅僅有:u或U(unsigned)、l或L(long)、u/U與l/L的組合(如:ul、lu、Lu等)。例:100u; -123u; 0x123l;
(3)浮點常數的表示形式有:
科學計數形式和小數點形式。浮點常數默認是double的。
對浮點常數進行類型轉換的后綴僅僅有:f或F(單精度浮點數)、l或L(長雙精度浮點數)。
(注:因浮點型常數總是有符號的,故沒有u或U后 綴)。例:1.23e5f; 1.23l; -123.45f;
(4)整型常量的類型是下列對應表中第一個能表示其值的類型:
無后綴的十進制整數常量:int,long int,long long int
以字母u或U為后綴的十進制整型常量:unsigned int,unsigned long int,unsigned long long int
以字母l或L為后綴的十進制整型常量:long int,long long int
同一時候以字母u或U和字母l或L為后綴的十進制整型常量:unsigned long int。unsigned long long int
以字母ll或LL為后綴的十進制整型常量:long long int
同一時候以字母u或U和字母ll或LL為后綴的十進制整型常量:unsigned long long int
無后綴的八進制或十六進制常量:int。unsigned int,long int,unsigned long int,long long int,unsigned long long int
以字母u或U為后綴的八進制或十六進制常量:unsigned int,unsigned long int,unsigned long long int
以字母l或L為后綴的八進制或十六進制常量:long int。unsigned long int。long long int,unsigned long long int
同一時候以字母u或U和字母l或L為后綴的八進制或十六進制常量:unsigned long int,unsigned long long int
以字母ll或LL為后綴的八進制或十六進制常量:long long int。unsigned long long int
同一時候以字母u或U和字母ll或LL為后綴的八進制或十六進制常量:unsigned long long int