![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
啃啃csapp
文章平均质量分 85
zhicpp
Welcome to my csdn blog!
展开
-
csapp_ch3_程序的机器级表示
为什么计算机系统要进行数据对齐? 数据对齐简化了处理器和内存系统之间的接口设计,并提高了内存系统的性能和效率。例如,假设一个cpu总是从内存中取8个字节,则地址必须为8的倍数。如果能够保证double类型数据的地址对齐为8的倍数,那么就可以只用一个内存操作来对数据进行读写。否则,可能需要执行两次内存访问,因为地址没有对齐为8的倍数,该对象可能被分放在两个8字节内存块中。 数据对齐的原则:任何K字节的基本对象的地址必须时K的倍数。 类型 K Byte char 1 short 2 in原创 2021-10-24 22:16:29 · 133 阅读 · 0 评论 -
csapp_ch1_计算机系统漫游
1 hello程序如何翻译为可执行文件? hello.c源程序: #include <stdio.h> int main(){ printf("hello, world\n"); return 0; } hello程序是从C语言程序开始,因为这种形式方便被人读懂。但要在系统上运行,必须要转换为机器能够识别的格式。在Linux系统中,从源文件到目标文件的转化是由GCC编译器完成的。 Linux> gcc -o hello hello.c GCC编译器将hello.c源文件翻译为可执行原创 2021-04-14 14:36:34 · 129 阅读 · 0 评论 -
csapp_ch2_信息的表示和处理
本章重要的知识点: 三种重要的数字编码表示 无符号编码 补码编码 浮点数编码 整数的表示虽然只能编码较小的范围,但却是精确的,而浮点数虽然可以编码较大的数值范围,但这种表示是近似的 字节顺序,大端vs小端 强制类型转换,底层的位值是不变的,只是改变了解释这些位的方式 两个正数相加会得出一个负数,而比较表达式x<y和x-y<0会产生不同的结果,这是因为算术运算可能会溢出 补码非的两种方法 IEEE浮点数表示,int类型的12345与float类型12345.0的二进制表示之间的关联 1原创 2021-04-28 17:14:50 · 135 阅读 · 0 评论