常见数据类型的值的范围
1 | unsigned int 0 ~ 4294967295 (0 ~ 2^32 - 1) |
用户态切换到内核态3种方式
- 系统调用
- 异常
- 外围设备中断
单精度和双精度问题
- 一个浮点数由三个部分组成:符号位S、指数部分(E)以及尾数部分M
- 单精度浮点数(float)总共由32位表示,其中尾数用23存储,加上小数点前有一位隐藏的1。所以尾数最大值为:2^(23+1) = 16777216,因为10^7 < 16777216 < 10^8,所以说单精度的有效位数位7位。
- 双精度浮点数(double)总共用64位来表示浮点数,其中尾数用52位存储,2^(52+1) = 9007199254740992,10^16 < 9007199254740992 < 10^17,所以双精度的有效位数是16位。