数据类型:
算术类型
类型 | 符号 | 位数(bit) | 范围 |
---|---|---|---|
短整型: | short | 8 | -2^{15} ~ 2^{15}-1 |
整形: | int | 32 | -2^{31} ~ 2^{31}-1 |
长整型: | long | ||
长整型: | long long | 64 | |
单精度浮点型: | float | 6位有效数字 | |
双精度浮点型: | double | 10位有效数字 | |
扩展精度浮点型: | long double | 10位有效数字 |
注意事项:double
比 float
精度高,在某些设备上计算更快,long double
提供的精度一般没必要,而且会导致很高的开销
类型 | 符号 | 位数(bit) | 范围 |
---|---|---|---|
布尔型: | bool | // 布尔值输出为0/1, false/true | |
字符型: | char | 8 | // 字符型用单引号,双引号报错 |
宽字符: | wchar_t | 16 | |
Unicode字符: | char16_t | 16 | |
Unicode字符: | char32_t | 32 | |
无符号算术类型: | unsigned + 算术类型 |
例: unsigned int
对于char分为三类:unsigned char
(0-255), signed char
(-128–127), char
类型转换
数据类型转换:
-
将一种算术类型赋值给另一种算术类型
bool b = 42; // b为真,在int型中,bool为真表示为1,为假表示为0. int i = b; // i的值为1 i = 3.14; // 尽管将float赋值给需要int型的i double pi = i; // 将int型赋值给double型,则自动转为double,所以pi=3.0 char c = 65; // 将int型转换为对应的编码'A'
-
无符号 + 有符号 = 无符号。
其中有符号的直接被当做无符号计算,切记不要混用