2.1.1节练习
练习2.1
- 四种类型所要求的尺寸不同.
- 无符号和有符号的表示范围不同.并且,无符号类型的所有位都用来表示值.有符号类型由于使用补码,并不单独储存符号位,否则的存在
+0 -0,浪费空间. - 在精度要求上,
double高于float.由于硬件结构两者运算代价相差无几,并且float通常精度不够,因此一般直接使用double.
练习2.2
- 均使用
double类型 double类型有10位有效数字,并且运算速度也足够快.
2.1.2 节练习
练习2.3
- 32
- 2^n -32(n为系统上unsigned所占bit)
- 32
- -32
- 0
- 0
练习2.4
#include <iostream>
using std::cout;
using std::endl;
int main()
{
unsigned u = 10, u2 = 42;
cout << u2 - u << endl;
cout << u - u2 << endl;
int i = 10, i2 = 42;
cout << i2 - i << endl;
cout << i - i2 << endl;
cout << u - i << endl;
cout << i - u << endl;
return 0;
}
输出
- 其中4,294,967,264为2^32-32
2.1.3 练习
练习 2.5
charwchar_tarrayarray,且子元素为wchar_t.字符字面值"组合为"字符串字面值.intunsignedlongunsigned longint 8进制int 16进制doublefloatlong doubleintunsigneddoubledouble
练习2.6
- 有区别.
- 第一组使用十进制int进行初始化
- 第二组使用8进制int进行初始化,且
int month = 09错误,09不是一个正确的八进制数字.
联系 2.7
- 使用了泛化的转义序列,
字符串字面值.转义的内容和其使用的字符集有关. - 31.4
long double. 后缀f修饰浮点数,用法错误. 3.14long double