CS:APP datalab 参考解答
https://csapp.cs.cmu.edu/3e/datalab-handout.tar
isTmax
的位表示为 。注意到 当且仅当 或 。类似的,判断 看似也可行,但实际上编译器将这条式子优化成了 。
allOddBits
、logicalNeg
使用 作业 2.65 中提到的“折半递归法”。
conditional
设计函数 :当 时 ,而 时 。
isLessOrEqual
先判断 是否异号,若异号则直接得到结果;接着判断 ,即 的符号位,当 同号时不会溢出。
howManyBits
为了仅考虑 为正数的情况,令 。接下来可通过“折半递归法”解决。
代码参见 https://git.gzezfisher.top/FISHER_/CSAPP-sol/src/branch/main/labs/datalab。
CS:APP datalab 参考解答