命名规则:
C语言规定用户定义的标识符(变量名、函数名等)必须以字母或下划线开头且由字母、数字和下划线构成,同时不能使用语言的保留字(关键字)
数的转换
R进制的每一位数值用R^k形式表示,即幂的底数是R,指数为K,K与该位和小数点之间的距离有关
O:八进制 B:二进制 H:十六进制 D:十进制
其他进制转十进制
按权展开法
十进制转R进制使用短除法
例:将173转换为二进制数(10101101)
快速转换法
(2^3=8 每三位一转)
(2^4=16 每四位一转)
存储相关基础概念
地址:
整个内存被分为若干个存储单元,为了有效存储该单元内存储的内容,每个单元必须有唯一的编号(称为地址)来标识
位(bit)
存放一位二进制的数即0或1称为位
字节
8个二进制位为一个字节
1KB=2^10B=1024B
1TB=2^10GB=2^20MB=2^40B
数的表示
原码 符号位:为零表示正,为一表示负
反码 符号位:为零表示正,为一表示负
正数的反码等于原码,负数的反码等于原码除符号位外按位取反。
补码 符号位:为零表示正,为一表示负(应用场景:数的加减法,算术运算过程中符号位与数值位采用同样的运算规则进行处理)
正数的补码等于原码,负数的补码等于反码末位加1。
移码 补码的符号位取反(用于浮点数的阶码)
数值1 | 数值-1 | |
原码 | 0000 0001 | 1000 0001 |
反码 | 0000 0001 | 1111 1110 |
补码 | 0000 0001 | 1111 1111 |
移码 | 1000 0001 | 0111 1111 |
数的表示范围
原码:-127~127
反码:-127~127
补码:-128~127(0的补码唯一,即[+0]补码=[-0]补码=0000 0000,相比原码和反码,补码中少了一个0的编码,即在原码中表示-0的1000 0000,因此在补码中将这个多出来,10000000进行扩充,用来表示-128)
移码:-128~127
定点数与浮点数
定点数 小数点的位置固定不变的数,小数点不需要占用一位二进制
定点整数
定点小数 小数点在符号位之后,最高有效数位之前
浮点数运算
N=M*(R^e) 其中M称为尾数,e是指数,R为基数
1、对阶
让两个操作数阶数相同,实现的方式是对较小数的尾数进行右移操作,低阶向高阶看齐。
2、尾数加减
3、结果格式化
4、舍入
5、溢出判断
阶码决定浮点数可以表示的数值范围,尾数决定精度。
计算机的基本组成
计算机硬件由五个基本部分组成:运算器、控制器、存储器、输入设备和输出设备
CPU中央处理器由运算器、控制器(寄存器组、内部总线)组成
运算器组成:算术逻辑单元ALU、累加寄存器(用来保存一个操作数和运算结果的寄存器)、数据缓冲寄存器、状态条件寄存器
控制器组成:程序计数器PC(暂存待执行指令的地址)、指令寄存器IR(暂存正在执行的指令)、指令译码器、时序部件
计算机体系结构
应用软件
其他系统软件
操作系统
计算机硬件
性能的基本概念
总线的性能指标:
总线的带宽,即单位时间内总线上可以传输的数据量,单位是MB/S
总线的位宽,即总线能同时传输的数据位数,32位、64位
总线的工作频率,即总线的时钟频率,它是协调总线上各种操作的时钟频率
总线的分类
数据总线:传输数据信息,CPU一次传输的数据与数据总线带宽相等,宽度决定了在主存储器和CPU直接数据交换的效率。
控制总线:传送控制信号和时序信号,如读/写、片选、中断响应信号等
地址总线:传送地址,它决定了系统的寻址空间,地址总线宽度决定了CPU能够使用多大容量的主存储器。
计算机体系结构的分类
指令:
一条指令就是机器语言的一个语句,是一组有意义的二进制代码。
包括操作码字段(指出了计算机要执行什么性质的操作)和地址码字段(包含各操作数的地址及操作结果的存放地址等)
CISC和RISC
流水线
多条指令重叠进行操作的一种准并行处理实现技术(可提高指令的执行效率)
取指→分析→执行
流水线周期:执行时间最长的阶段
流水线计算公式:Nt+(k-1)t
单条指令所需时间+(n-1)*(流水线周期)
流水线的吞吐率TP计算公式:TP=n/Tk (Tk即单条指令所需时间+(n-1)*(流水线周期))
例:取指2ns,分析2ns,执行1ns。则流水线周期是2ns。
100条指令全部执行完毕需要的时间:(2+2+1)+99*2=5+198=203
吞吐率为100/203
直接存储器存取方式(DMA):在DMA模式下,CPU只需向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完之后再把信息反馈给服务器即可。在传送数据块的过程中不需要cpu干涉(提高了cpu的利用率),提高了主机与外设并行工作的程度。
中断方式:当I/O接口准备好接收数据或传送数据时,就发出中断信号通知CPU,对中断信号进行确认后,CPU保存正在执行的程序的现场,转而执行提前设置好的I/O中断服务程序,完成一次数据传送的处理。这样,CPU就不需要主动查询外设的状态,在等待数据期间可以执行其他程序,从而提高了CPU的利用率。采用中断方式管理I/O设备,CPU和外设可以并行地工作。中断服务程序入口地址称为中断向量。
并行/多处理机
并行处理机:
阵列计算机,由多台处理机组成,每台处理机执行相同的程序,是操作并行的SIMD计算机
多处理机:
由若干台独立的计算机组成,每台计算机能够独立执行自己的程序,是MIMD计算机
多级存储器结构
寄存器速度最快,外存成本较低但速度较慢
存储器分类
寻址方式:
就是处理器根据指令中给出的地址信息来寻找有效地址的方式,是确定本条指令的数据地址以及下一条要执行的指令地址的方法。
直接寻址:在指令格式的地址字段中直接指出操作数在内存的地址(操作数在主存单元中)。
间接寻址:指令地址字段中的形式地址不是操作数真正的地址,而是操作数地址的指示器。
立即寻址:指令的地址字段指出的不是操作数的地址,而是操作数本身。(操作数在指令中)特点:指令执行时间很短,不需要访问内存取操作数。
寄存器寻址:操作数不放在内存中,而是放在CPU的通用寄存器中
寄存器间接寻址:操作数在主存单元,而其地址在寄存器中
Cache
功能:提高CPU数据输入输出的速率,突破所谓的“冯·诺依曼瓶颈"
速度:在计算机的存储系统体系中,Cache是访问速度较快的层次
原理:使用Cache改善系统性能的依据是程序的局部性原理
组成:Cache由两部分组成:控制部分和Cache存储器部分(地址转换通过硬件控制)
校验码-奇偶校验码、CRC、海明校验码
奇偶校验码—仅可检错,可检测1(奇数)位错
缺点:具有局限性,只能检测出奇数位出错的情况,不能确定出错位置,也不能纠正错误。
CRC(循环冗余码)一仅可检错,可检测多位错。采用模2除法进行校验码计算。
海明码—可检错,且可纠错,纠1位错或多位错。数据信息位与校验位需要满足一定的位置关系。
码距:
一个编码系统的码距就是整个编码系统中任意(所有)两个码字的最小距离
例:
若用1位长度的二进制编码。若A=1,B=0。这样A,B之间的最小码距为1
若用2位长度的二进制编码,若以A=11,B=00为例,A、B之间的最小码距为2
若用3位长度的二进制编码,可选用111,000作为合法编码。A,B之间的最小码距为3