數據類型 | 字節大小 | 數值范圍 |
---|---|---|
short int (短整型) | 2 字節 | -32 768 〜+32 767 |
unsigned short int (無符號短整型) |
2 字節 | 0 〜+65 535 |
int (整型) | 4 字節 | -2 147 483 648 〜+2 147 483 647 |
unsigned int (無符號整型) | 4 字節 | 0 〜4 294 967 295 |
long int (長整型) | 4 字節 | -2 147 483 648 〜+2 147 483 647 |
unsigned long int (無符號長整型) |
4 字節 | 0 〜4 294 967 295 |
long long int (超長整型) | 8字節 | -9 223 372 036 854 775 808~9 223 372 036 854 775 807 |
unsigned long long int (無符號超長整型) |
8字節 | 048 446 744 073 709 551 615 |
注意,超長整型和無符號超長整型是在 C++11 中引入的。
1、整形:表示整數、字符和布爾值的算數類型的合稱;
2、字符類型有兩種:char和wchar_t,char類型通常是單個字節,wchar_t類型用於擴展字符集,比如漢字和日語,這些字符集不能用單個char表示;
3、short、int、long類型都表示整形,一般來說(32位機器),short占16位,兩字節;int占32位(根據系統而定,32位機下為4個字節),四個字節;long在32位機器上和int一樣,也是四個字節(所以感覺C++ Primer中這塊的概念有誤,1字=2字節 才對)
4、默認情況下,int、short、long都是帶符號的,即signed;
5、和其他整形不同,char有三種表示方式:普通char、unsigned char、signed char。雖然有三種不同的類型,但是只有兩種表示方式。可以使用unsigned char或者signed cahr表示char類型,具體使用哪種方式由編譯器而定。
6、整型的賦值:當一個超出范圍的值被賦給一個變量時,會怎么賦值呢?答曰:由編譯器來決定,但一般都是取該值對該類型取值數目求模后的值(但不能保證所有編譯器都會這樣處理),e.g. 試圖將336存儲到8位的unsigned char中,實際賦值為80,因為80是336對256求模后的值,同理,如果把-1賦給8位的unsigned char,那么結果是255,因為255是-1對256求模后的值;
7、浮點數float、double、long double分別表示單精度、雙精度、擴展精度浮點數,一般float為32位,double為64位,long使用96位或者128位。類型的取值范圍決定了浮點數所含的有效數字位數,對於實際程序來說,float類型只能保證6位的有效數字,而double類型至少可以保證10位的有效數字。
8、C++的標准並沒有規定每種類型占多少位,只是說 “sizeof(long)>=sizeof(int)>=sizeof(short)”,所以具體的字節數都是根據編譯器來確定的。
————————————————