- 博客(6)
- 资源 (1)
- 收藏
- 关注
原创 计算机系统基础之进程
C语言:fork函数在日常的编程过程中,是否注意到exit(0)这个语句,在我们初学者的理解中,他的作用可能是结束程序,但是,在学习了计算机系统基础这门课之后,我们发现,它的作用并非只是简单的结束一个正在运行中的程序,在讲真正的作用之前我们需要先知道一个概念——进程。进程:一个执行中程序的实例。exit(0)的作用其实是结束一个进程,在这一点上return 0有和它同样的作用。既然可以...
2019-12-08 16:41:50
482
原创 CSAPP第十章学习日志
Unix I/O一个Linux文件就是一个m个字节的序列,所有的I/O设备(例如网络、磁盘和终端)都被模式化为文件,而所有的输入和输出都被当做对此项对应的文件的读和写来进行执行。这种设备优雅的映射为文件的方式,允许Linux内核引出一个简单的、低级的应用接口,称为Unix I/O,这使得所有的输入和输出都能以一种统一且一致的方式来执行:打开文件。应用程序要求内核打开相应的文件,一次访问I/O...
2019-12-08 16:39:57
183
原创 与静态库链接
与静态链接库链接在《深入理解计算机系统基础》一书的第七章,主要讲解了链接,也就是通俗来讲打包的概念,在我们日常的编程作业中我们很有可能不希望让他人知道我们的源代码,这个时候链接就拍上了作用,在我们平时编写代码的时候,我们调用的例如:printf,scanf,strcat等函数基本都是来自库文件,作为使用者我们无法知道这些函数真正的源代码,因为这些都是进行了打包操作,封装起来的。在一个程序的...
2019-10-06 14:38:20
214
原创 CSAPP课堂日志——浅谈带符号整数加减法中的溢出问题
浅谈带符号整数加减法中的溢出问题以及带符号整数二进制补码表示的最少位数在学习完C语言后,我们便可以进行基础性的编程,我们会注意算法是否有效、语句格式是否正确、变量的定义等等方面,然而深入代码内部,我们只是注意到了表层的问题,而忽略了代码深层的问题,如我们平时所写的阶乘算,当所给参数超过一定数值范围是,就会发生溢出,会导致所得结果与原结果不一致,甚至出现负数的可能;再如,当我们在实现带符号整数减法...
2019-05-29 21:25:05
3438
原创 CSAPP实验日志——判断是否整数的二进制表示是否只有奇数位有值
anyOddBit题目要求:return 1 if any odd-numbered bit in word set to 1例如: anyOddBit(0x5) = 0, anyOddBit(0x7) = 1允许操作:! ~ & ^ | + << >>操作数限制:12题目解析:解析以32位为主,想要判断一个二进制数,是否只有奇数位有值,我们只需要将它与0...
2019-05-29 21:24:53
689
原创 CSAPP实验——算法实现求带符号整数二进制补码表示的最少位数
带符号整数二进制补码表示的最少位数注:文章为方便说明,规定位宽为16想要在一个16位的补码中无视多余位,找出可以表示该带符号整数二进制补码的最少位数,我们需要的运用到C语言中一个非常有用的算法思想——拆半查找。拆半查找: 搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一...
2019-05-29 21:24:36
746
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人