C++的基本類型分為兩種:一組由儲存為整數的值組成,另一組由儲存為浮點格式的值組成。
C++算術類型的最小儲存空間
類型+含義+最小儲存空間如下:
bool 布爾型
char 字元型 8位
wchar_t 寬字元型 16位
short 短整型 16位
int 整形 16位
long 長整形 32位
float 單精確度浮點型 6為有效數字
double 雙精確度浮點型 10位有效數字
long double 擴充精度浮點型 10位有效數字
整型
整形可分為:char、short、int、long、long long ,每一種都有有符號和無符號兩種。
char是一種整形,可以表示電腦中的所有的基本符號,用一個位元組表示。需注意越界
其中short為short int的簡稱,long為long int的簡稱。
C++的整形標準
short至少16位;
int至少和short一樣長;
long至少32位,且至少和int一樣長;
long long至少64位,且至少與long一樣長。
8位的char取值範圍為 -128 ~ 127,無符號為 0 ~ 255
16位的int取值範圍為 -32768 ~ +32767,無符號為 0 ~ 65535
32位的int取值範圍為 -2147483648 ~ +2147483647,無符號為 0~4294967295
64位的int取值範圍為 -9223372036854775808 ~ +9223372036854775807,無符號為 0 ~ 18446744073709551615
bool類型:字面值true和false都可以通過提升類型轉換為int類型,true被轉換為1,false被轉換為0。
char類型是專為儲存字元(如字母和數字)而設計的。C++對字元用單引號,對字串使用雙引號。
八進位 042 相當於十進位34 cout << dec;
十進位 42 cout << oct;
十六進位 0x42 相當於十進位66,輸出為16進位。
cout << hex;
cout << 123456 << endl;//1e240
cout << 1492 << endl;
除非有理由儲存為其他類型(如使用特殊的尾碼來表示特定的類型,或者值太大,不能儲存為int),否則c++將整形常量儲存為int類型。
尾碼
l或L表示該整數為long常量,u或U表示unsigned int常量,ul(可採用任何一種順序,大小寫均可)表示unsigned long
C++11提供了表示long long的尾碼ll或LL,還提供了unsigned long long的尾碼ull、Ull、uLL、ULL
const限定符
常量被初始化之後,其值就被固定了,編譯器不允許修改常量的值。
浮點數
能夠表示帶小數部分的數字。浮點數分兩部分儲存:一部分表示值,另一部分用於對值進行放大或縮小。
3.45E6指3.45與1000000相乘的結果,E6表示10的6次方。因此3.45E6表示34560000,6稱為指數,3.45成為尾數。
指數為負數表示除以10的城防,如8.55E-4表示0.000855
-8.55E4表示-85500,前面的符號用於數值,指數的符號使用者縮放。
float 、double 、long double是按照他們可以表示的有效數位和允許的指數最小範圍來描述的。有效位是數字中有意義的位。
C和C++對有效位的要求是float至少32位
double至少48位,且不少於float
long double至少和double
通常float為32位,double為64位,long double為80 96或128位,另外這三種類型的指數範圍為-37 ~ 37
尾碼預設情況為都屬於double類型,如果希望為float可使用f或F尾碼。對於long double類型,可使用l或L尾碼。