收拾一个学期的学习资料,有价值的东西尽量PO出来,帮学弟学妹们少走弯路。老学长踩过的坑,希望大家就不要再踩了。
CSAPP(校内课程名是计算机系统基础,用书是CMU的《深入理解计算机系统》)让人又爱又恨
- 确实有用,自顶向下,从常见的C语言程序入手,到汇编,到机器码,到电路设计,褪下计算机的神秘外衣,其最终不过是经过不同层面反复抽象的电路。此课让初入茅庐者得以一窥计算机的全貌。
- 内容多而浅,什么都讲,百科性质的,但是又都不深入。复习时完全不知道什么是重点,只得地毯式复习,然而很多知识点也是半懂不懂,复习了好几遍又似乎啥也没干。
- 没有真题。
其实最终考下来卷子并没有那么难,只是复习时要面面顾及。学弟学妹们复习时可以对照着题目列表自己动手做一做。
题目列表
练习题
第2章
2.21、2.23、2.24、2.33、2.40、2.44、2.45、2.47、2.54
2.60、2.65、2.67、2.68
第3章
3.1、3.2、3.3、3.4(先阅读图3-5、3-6指令功能)、3.5、3.6
3.7、3.9、3.15、3.18、3.20、3.26、3.27、3.31、3.32、3.33
3.36、3.37、3.38、3.44、3.45
第7章
7.1、7.2、7.4、7.5
第10章
10.1、10.2、10.3、10.5
Reference:自己动手做 练习题(20190107更新).txt,是某位老师留给学生的参考资料。原文就是上面这些题号,但我并不知道是哪位,在此表示忠心感谢,对复习真的很有用。
自制评注
复习时自己一题一题做了一遍,有了一些感悟,写了下来。
没有评注的题目是因为太简单,没有啥必要评注,但做还是要做的
第2章 Bits, Bytes, and Integers
浮点数运算不满足结合律和分配律,因为舍入关系,十进制的乘法在二进制下无比巨大,float的23位尾数很快就会爆满,原先的低位会被抹掉。3+1e20-1e20=0,1e20是10^20,换成2进制有67位。
2.21 原则:不加后缀U就是有符号数,如果这个有符号数超出范围了,就先用long把它表示出来再去做截断。
有符号数和无符号数混合比较时,转换成无符号数后再比较,此时首位的负权值变正,如果之前是负数就要加上2^w
TMin=-2什么