c++作為c的超集诱担,除了引入了class類型外山卦,其基本數(shù)據(jù)類型和c基本一致:
各種基本數(shù)據(jù)類型的大小腹泌、范圍和精度如下:
類型 | 大泻峙臁(字節(jié)) | 范圍 | 精度 |
---|---|---|---|
char | 1 | -128 ~ +127 | 1 |
unsigned char | 1 | 0 ~ 255 | 1 |
short | 2 | -32767 ~ + 32768 | 1 |
unsigned short | 2 | 0 ~ 65536 | 1 |
int | 4 | -2147483648 ~ +2147483647 | 1 |
unsigned int | 4 | 0 ~ 4294967295 | 1 |
long | 4 | -2147483648 ~ +2147483647 | 1 |
unsigned long | 4 | 0 ~ 4294967295 | 1 |
long long | 8 | -9223372036854775808 ~ +9223372036854775807 | 1 |
unsigned long long | 8 | 0 ~ 1844674407370955161 | 1 |
float | 4 | -3.40e38 ~ +3.40e38 | 1e-7 |
double | 8 | -1.79e308 ~ +1.79e308 | 1e-16 |
note
- 以上數(shù)據(jù)類型的大小和精度定義在climits和limits文件中岩臣;
- long在32位系統(tǒng)下大小為4字節(jié),在64位系統(tǒng)下大小為8字節(jié)向臀。其他數(shù)據(jù)類型的大小一樣巢墅;
- scanf中%f代表float, %lf代表double;printf中%f和%lf都可以代表float和double,因為float和double都會被轉(zhuǎn)換成8字節(jié)的double∪颍可以使用%m.nf控制float或者double的輸入\輸出精度君纫。long long的格式控制符為%lld;
- float和double的字節(jié)分布如下:
類型 | 符號位(bits) | 指數(shù)位(bits) | 尾數(shù)位(bits) |
---|---|---|---|
float | 1 | 8 | 23 |
double | 1 | 11 | 52 |
float和double的計算方式為:1.尾數(shù)*2^(指數(shù)位-1)