学习计时:共16小时
读书:8
代码:1
作业:5
博客:2
一、学习任务
- 理解二进制在计算机中的重要地位
- 掌握布尔运算在C语言中的应用
- 理解有符号整数、无符号整数、浮点数的表示
- 理解补码的重要性
- 能避免C语言中溢出,数据类型转换中的陷阱和可能会导致的漏洞
二、学习任务
- 阅读教材第二章《信息的表示和处理》,完成课后练习
- 课程资料:https://www.shiyanlou.com/courses/413 实验三
- 教材中代码运行、思考一下
三、学习过程
见上一篇博客
四、遇到的问题
- 注意区分布尔运算与逻辑运算的运算符,以及逻辑运算的特殊之处(非零参数表示为TRUE,即1;零参数表示为FALSE,返回值只有0或1,可理解为命题的结果只有真假两种可能),不要混淆。(习题2.14)
- TMin和TMax表示的数值在数据移位、加减以及强制类型转换时 数值的改变导致的溢出的特殊性。(2.44和2.54还需深入理解)习题2.44中:B选项(x&7)!=7如果表达式的值为0则必须有位X2等于1 是什么含义。
- 由截断导致的溢出。(习题2.24:无符号数截断值为模8的值,有符号数截断后得到两个序列的反复)
2.42代码运行结果:
不理解的习题2.33,2.39;不理解的知识点:IEEE浮点表示编码的值的三种不同情况,对应习题:2.47,2.52。