C++,對於基本知識還不太清楚,找了本書看看,作以下筆記,以備複習之用。
-----------------------------------------------------------------------------------
類型 最小存儲空間
bool ----
char 8 byte
wchar_t 16 byte
short 16 byte
int 16 byte
long 32 byte
float 6位有效數字
double 10位有效數字
long double 10位有效數字
-----------------------------------------------------------------------------------
1.布爾型說明:
它表示真值true和false,可以將算術類型的任何值賦給bool對象,0爲false,非0爲true
2.整型說明:
一般,short類型爲半個機器字(word)長,int爲一個機器字,而long類型爲一個或兩個機器字(32位機器中int和long通常字長相同)
3.帶符號和無符號類型:
signed可以表示正數和負數(包括0)
unsigned可以表示大於或等於0的數
整型int,short,long都默認爲帶符號型。
4.整型的賦值:
對於unsigned類型來說,編譯器必須調整越界值使其滿足要求,編譯器會將該值對unsigned類型的可能取值數目求模,然後取其值。
如unsigned char,其值取值範圍從[0-255],如果賦給一個超過這個範圍的值,那麼編譯器將會取該值對256求模,然後賦值。
對於unsigned類型,如果賦值一個負數,其結果是該負數對該類型的最大值求模後的值。如將-1賦值給unsigned char,則結果爲255(255是-1對256求模後的值)
5.浮點型:
類型float,double,long double分別表示單精度浮點數,雙精度浮點數,擴展精度浮點數,一般float用一個字(32byte)表示,double用兩個字(64byte)表示,long double用三個或四個字(96或128byte)表示。
特別說明:
使用double類型基本上不會有錯,在float類型中隱式的精度損失是不能忽視的,而雙精度計算的代價對於單精度可以忽略。實際上,有些機器上,double類型比float類型計算快的多。而long double類型提供的精度通常沒有必要,而且還需要承擔額外的運算代價。