C++ short/int/long/long long 等數據類型大小


表 1 整型數據類型
數據類型 字節大小 數值范圍
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)”,所以具體的字節數都是根據編譯器來確定的。
————————————————


免責聲明!

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



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