C++ 各种数据类型须知
*:这篇文章主要是为了若干在C++数据类型中懵逼的众人(包括我)…
1.各种类型的占位符,数据范围和性质
类型名称 | 所占空间(byte) | 取值范围 | 占位符 | 备注 |
---|---|---|---|---|
char | 1 | -2^7~2^7-1 | %c | 永远不要把int数组开成char… |
int | 4 | -2^31~2^31-1 | %d | 注意溢出问题 |
long long | 8 | -2^63~2^63-1 | %lld(L) %I64d(W) | 注意不同操作系统下的占位符 |
float | 4 | +/-3.4028e+38 | %f | 这并不常用 |
double | 8 | +/-1.79769e+308 | %lf | 没看错它就是308次,但它精度只有15位 |
long double | 12 | +/- 1.79769e+308 | %Lf | 卡精度神器,注意占位符大写 |
unsigned xxx | 不变 | 将原范围负范围加到正的去 | %xxu | 它的原理是将符号位利用成为数 字位 |
(这张表格并不是太详细,但一般编程所需类型都已包括)
注意:
1.unsigned型会在溢出时自动回到0开始,也就相当于实在模数据范围+1意义下的数字
2.long double的精度远高于double,所以对于一些卡精题建议使用long double
2.类型之间的转换
1.强制转换方法: X a=(X) b. 那么b就会强制转换为X类型
2.类型的转换本质上是强制截取一些二进制位或者强制加上一些二进制位,用这种逻辑去思考就没有问题
3.char转int相当于把该char变量的ASCII码赋给int变量