1:文本文件指的是ASCII码文件,二进制文件指的是除文本文件以外,其他文件。

2:区分数据对象的唯一判别方法是数据的上下文。

3:描述一下一个hello.c文件的处理过程。首先hello.c文件我们叫做源代码,经过预处理 gcc -E hello.c -o hello.i 处理一些宏,#define的预定义等,我们可以在hello.i的最底部找到我们helloworld的简单几行代码,编译之后得到汇编,gcc -s hello.c -o hello.s ,然后我们的汇编指令经过汇编就对应一条条机器码了。链接阶段实际上会将我们的hello.o文件和printf.o文件等链接到一起去执行。

4:计算机的硬件可以分为4大部分:

(1):总线:贯穿与整个系统的一组电子管道,携带信息字节并且在各个部件之间传递。通常总线被设计成传输定长的字节块。即“字”。

(2):I/O设备:输入输出设备,例如鼠标键盘,显示器,磁盘等。

(3):主存:又叫做程序执行的舞台,在处理器执行程序时,用来存放程序和程序用到的数据,(DRAM)

(4):处理器:中央处理器,又称中央处理单元,处理器的核心是寄存器,在任何时刻,寄存器始终指向主存中某条机器语言指令。它的基本操作有以下4个,加载,存储,操作和跳转。

5:大多数计算机使用8位的块,或者字节,作为最小的可寻址的的存储器单位,而不是在存储器中访问单独的位,机器级程序将存储器视为一个非常大的字节数组,称为虚拟存储器,存储器的每个字节都由唯一的数字来标识,称为它的地址。所有可能的集合称为虚拟地址空间,这个虚拟存储空间只是一个展现给机器级程序的概念性映像,实际的实现是将随机存储器,磁盘存储器,特殊硬件和操作系统软件结合起来,为程序提供看上去统一的字节数组。

6:计算机在存储器中按照从低有效字节到最高有效字节存储,即最低有效字节在前面的方法称为小端法,反之最高有效字节在前面的方法称为大端法。

7:c语言中的移位操作。移位操作分为左移和右移,左移几位就将最高位几位移出去,后面补0,右移分为逻辑右移和算术右移,逻辑右移是指将低位移出去,然后高位补0,但是算术右移是将低位移出去,高位补最高位,举个例子:

x:10110001 x<<2 : 11000100 x>>2(逻辑):00101100 x>>2(算术):11101100

c语言并没有明确规定使用哪种右移符号,几乎所有的编译器/机器组合都采用的是算术右移,许多程序员也会使用算术右移。

但是java对如何右移进行了明确的定义,表达式x>>k会将x算术右移k个位置,x>>>k会将x做逻辑右移 。

版权声明:本文为博主原创文章,未经博主允许不得转载。

CSAPP学习笔记(第一,二章)的更多相关文章

  1. CSAPP学习笔记 第一章 计算机系统漫游

    Ch 1.0 1.计算机系统是由硬件和系统软件组成的 2.本书阐述了计算机组件是如何工作的以及执行组件是如何影响程序正确性和性能的. 3.通过跟踪hello程序的生命周期来开始对系统的学习. #inc ...

  2. linux 第三周读书笔记-----第一二章 20135334赵阳林

    第一章 Linux内核简介 1.1 Unix的历史 由于Unix系统设计简洁并且在发布时提供源代码,所以许多其他组织和团体都对它进了进一步的开发. Unⅸ虽然已经使用了40年,但计算机科学家仍然认为它 ...

  3. [core Java学习笔记][第一二三章基本语法]

    基本语法 1 Java 简单的类型 1.1 一些常量 正无穷大 Double.POSITVE_INFINITY 负无穷大 Double.NEGATIVE_INFINITY 不存在 Double.NaN ...

  4. 《Linux内核设计与实现》 第一二章学习笔记

    <Linux内核设计与实现> 第一二章学习笔记 第一章 Linux内核简介 1.1 Unix的历史 Unix的特点 Unix很简洁,所提供的系统调用都有很明确的设计目的. Unix中一切皆 ...

  5. C++Primer第5版学习笔记(二)

    C++Primer第5版学习笔记(二) 第三章的重难点内容         这篇笔记记录了我在学习C++常用基本语法的学习过程,基本只记录一些重难点,对概念的描述不是一开始就详尽和准确的,而是层层深入 ...

  6. 《Java核心技术·卷Ⅰ:基础知识(原版10》学习笔记 第5章 继承

    <Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 目录 <Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 5.1 类.超类和子类 5.1 ...

  7. 《Java编程思想》学习笔记(二)——类加载及执行顺序

    <Java编程思想>学习笔记(二)--类加载及执行顺序 (这是很久之前写的,保存在印象笔记上,今天写在博客上.) 今天看Java编程思想,看到这样一道代码 //: OrderOfIniti ...

  8. Hibernate学习笔记(二)

    2016/4/22 23:19:44 Hibernate学习笔记(二) 1.1 Hibernate的持久化类状态 1.1.1 Hibernate的持久化类状态 持久化:就是一个实体类与数据库表建立了映 ...

  9. C#可扩展编程之MEF学习笔记(二):MEF的导出(Export)和导入(Import)

    上一篇学习完了MEF的基础知识,编写了一个简单的DEMO,接下来接着上篇的内容继续学习,如果没有看过上一篇的内容, 请阅读:http://www.cnblogs.com/yunfeifei/p/392 ...

随机推荐

  1. 总结.NET 中什么时候用 Static

    静态类和类成员用于创建无需创建类的实例就能够访问的数据和函数.当类中没有依赖对象标识的数据或行为时,就可以使用静态类.静态类成员是可独立于任何对象标识的数据和行为,即无论对象发生什么更改,这些数据和函 ...

  2. 内网透过公网nginx和vpn实现微信接口调试

    条件: 1.公网IP开放80/443端口 2.vpn,我熟悉openvpn 3.nginx反向代理 1.在公网服务器上装nginx和vpnserver 2.本地调试电脑装vpnclient,mac o ...

  3. OS X Yosemite Beta体验

    自从看到Yosemite泄露图的那天起,就暗暗下决心,一定要坚守Mavericks阵营,坚决不升级,觉得新版系统界面简直其丑无比,结果过了没多久,就按耐不住了,在Windows下的虚拟机里面看了看,发 ...

  4. input输入框文字提示IE兼容

    <script src="assets/js/jquery-1.9.1.min.js"></script> <script> /* * jQue ...

  5. tokudb引擎磁盘空间不足导致写入失败的调查

    故障现象 2016.1.1号早上4点左右,zabbi数据库服务器报警,写入数据失败.登陆机器后检查发现磁盘空间使用95%没有用满,进去zabbix数据库,执行insert命令提示错误“errir 10 ...

  6. wkhtmltopdf乱码解决方案

    在CentOS下使用wkhtmltopdf将html页面转换成pdf的时候对于某些页面可能会出现转换成的pdf中很多字符乱码的情况,更怪异的是直接在命令行下运行一切正常,但在httpd+php下使用却 ...

  7. 【学】AngularJS日记(4)- 过滤器的使用

    过滤器: 过滤器中的 |json,可以使原来的json数据输出时按照换行的样式 过滤器 | limitTo:2可以截取字符串或者数组的前2位 过滤器| orderBy 可以进行排序,加入json里的k ...

  8. jQuery源码:从原理到实战

    jQuery源码:从原理到实战 jQuery选择器对象 $(".my-class"); document.querySelectorAll*".my-class" ...

  9. NSOperationQueue与GCD的使用原则和场景

    首先,我们要明确NSOperationQueue与GCD之间的关系: NSOpertaionQueue用GCD构建封装的,是GCD的高级抽象. 其次,我们要区别两者的不同: GCD仅仅支持FIFO队列 ...

  10. pjax技术的应用

    一.什么是PJAX? 现在有一些网站(apicloud,  github)支持这样一种浏览方式,当你点击站内的一个连接的时候,不是传统的跳转到另外一个连接,而是类似ajax的局部刷新改变页面内容,但是 ...