c++類型所占的字節和表示范圍


一:數值類型的大雜燴

(1)short、int 和 long 類型都表示整型值。存儲空間的大小不同

一般, short 類型為半個機器字長,int 類型為一個機器字長,而 long 類型為一個或兩個機

器字長(在 32 位機器中 int 類型和 long 類型通常字長是同樣的)。

(2)常量的定義以及表示范圍:

unsigned   int   0~4294967295                                                  就是2^32-1
int   -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



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM