CSAPP 学习笔记「信息的表示和处理」

#Computer

花了不到 5 个小时,把第二章,也就是「信息的表示和处理」给看完了。章节后的家庭作业和很多练习题都没做。一是因为二进制的很多东西实在是学过太多遍了,没必要再来一遍;二是因为我认为这章内容算不上多重要,有个整体的把握和认识即可。

第一节是「信息存储」。里面对我比较新的东西就是「大端」「小端」的概念,以及不引入第三个变量,交互两个变量的值的方法:

void inplace_swap(int *x, int *y) {
    *y = *x ^ *y;
    *x = *x ^ *y;
    *y = *x ^ *y;
}

第二节是「整数表示」。与以前学的计组不同,这里把补码的意义写的清楚多了:将最高位解释为负权。 另一方面需要注意的是,在 C 语言中,强制转换的结果是保持位值不变,只是改变了解释这些位的方式。

第三节是「整数运算」。详细讨论了算术运算的溢出问题。

第四节是「浮点数」。介绍了 IEEE 浮点数标准和向偶数舍入方法。

总体来说这章还是让自己对数据的二进制的表示有了个整体的概念。