注意:以下內容摘自文獻[1],修改了部分內容。
計算機處理的對象是數據,而數據是以某種特定的形式存在的(例如整數、浮點數、字符等形式)。數據結構指的是數據的組織形式。例如,數組就是一種數據結構。
1.C++可以使用的數據類型如下:
2.C++的數據包括常量與變量,常量與變量都具有類型。
3.C++並沒有統一規定各類數據的精度、數值范圍和在內存中所占的字節數,各種C++編譯系統根據自己的情況作出安排。只規定了int型數據所占的字節數不大於long型,不小於short型。一般在16位機的C++系統,短整型(short)和整型(int)只占兩個字節,長整型(long)占4個字節 。在Visual C++ 6.0中,短整型占兩個字節,整型和長整型占4個字節。
(C++ primer 第五版 P31)
4.Visual C++中數值型和字符型數據如下:
類型 | 類型標識符 | 字節數 | 數值范圍 |
整型 | [signed] int | 4 | -2147483648 ~ +2147483647 |
無符號整型 | unsigned [int] | 4 | 0 ~ 4,294,967,295 |
短整型 | short [int] | 2 | -32768 ~+ 32767 |
無符號短整型 | unsigned short [int] | 2 | 0 ~ 65535 |
長整型 | long [int] | 4 | -2147483648 ~ +2147483647 |
無符號長整型 | unsigned long [int] | 4 | 0 ~ 4294967295 |
字符型 | [signed] char | 1 | -128 ~ +127 |
無符號字符型 | unsigned char | 1 | 0 ~ 255 |
單精度型 | float | 4 | 3.4e-38 ~ 3.4e38 |
雙精度型 | double | 8 | 1.7e-308 ~ 1.7e308 |
長雙精度型 | long double | 8 | 1.7e-308 ~ 1.7e308 |
說明:
(1) 整型數據的存儲方式為按二進制形式存儲,例如十進制整數85的二進制形式為1010101,則在內存中的存儲形式如下圖所示。(整型數據占4個字節)
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
(2) 如果指定signed,則數值以補碼形式存放,存儲單元的最高位(bit)用來表示數值的符號,如果指定為unsigned,則數值沒有符號,全部二進制位都用來表示數值本身。正整數的原碼、反碼和補碼相同,負整數的原碼、反碼、補碼形式不同,負數的反碼:符號位不動,其余各位對原碼取反,它的補碼是反碼+1。
(3) 浮點型又稱實型,分為float、double、long double三種,在Visual C++ 6.0中,對float提供6位有效數字,對double提供15位有效數字,並且float和double的數值方位不同。
參考文獻
[1]譚浩強.C++程序設計[M].北京:清華大學出版社.