LAB 1
这一个 lab 主要涉及了位运算,补码和浮点数等内容。个人觉得不算容易,因为限定了算子和操作数,从比特的层面实现一些功能。
1. 用非和且实现异或
1 | /* |
2.输出补码中最小的int
1 | /* |
3.判断是否是int——max
1 | /* |
4.判断奇数位(级数次方对应的位)比特是否全为1
1 | /* |
这个还想了挺久。
5.取负数
1 | /* |
6.判断ASCII码
1 | /* |
7.条件语句
1 | /* |
这道题也卡了一小会,主要是利用-1那一开始没想到。
8.小于等于
1 | /* |
9.逻辑非
1 | /* |
10.统计比特数
太难了,我倒下了。
1 | /* howManyBits - return the minimum number of bits required to represent x in |
11.浮点数乘2
1 | /* |
12.float 2 int
1 | /* |
13.2的整数幂次,关键在于确定范围。
1 | /* |
总结
这一章主要讲的是二进制对数据的表示和数学运算。难度我觉得挺难的,主要是当限制到底层,用二进制实现一些在数学定义好的操作上,需要一个思维的转换过程.
- 本文作者: SFARL
- 本文链接: sfarl.github.io/2020/06/20/csapp lab1/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!