数据的表示
R进制转十进制:按权展开法
二进制1001010.01=
整数部分:1001010从左向右看
第一位:0×21,第二位:1×21,第二位:0×22……
小数部分:01
第一位:0×2-1,第二位:1×2-2
以此类推,将求得的值加上就是十进制的值(Tip:0乘任何数都为0,因此在求解的时候可以不用写出来),以上解的值为74.25。
其余进制也是相同的求法,不同的地方在于要将2改成对应的进制,例如是8进制即是8的多少次方。
十进制整数转R进制
全为整数:短除法
例如:98转二进制
98÷2=49余0
49÷2=24余1
24÷2=12余0
12÷2=6余0
6÷2=3余0
3÷2=1余1
1(逆序排上去)
结果为:1100010
有小数转R进制
整数部分使用短除法,小数部分乘上对应的进制数,取其整数部分的数值,小数部分继续相乘(Tip:有些数值并不总能转换成对应的R进制的小数,就需要采用取近似值的方法)
例如:0.25转二进制
第一次:0.25×2=0.5取0
第二次:0.5×2=1取1
0.25的二进制表示就为:0.01
若要转为其它进制只需要将2改成对应的进制即可。
二进进制,八进制,十六进制相互转换
二进进制转八进制
每三个二进制位对应一个八进制
例如:10001110
从右至左分段,每三个分一段:10 001 110(Tip:最左边的也许会不足三个,只需要补上0即可)
然后分别使用按权展开相加即可
110=1×21+1×22=6
001=1×20=1
10=1×21=2
10001110对应的八进制即:216
二进进制转十六进制
每四个二进制位对应一个十六进制
例如:10001110
从右至左分段,每四个分一段:1000 1110(Tip:最左边的也许会不足三个,只需要补上0即可)
然后分别使用按权展开相加即可
1110:1×21+1×22+1×23=14
14对应十六进制的的E(Tip:不清楚的可以去看看16进制表)
1000:1×23=8
10001110对应的十六进制即:8E
如果是需要八进制转十六进制的,我还不知道咋整,我是把八进制转回二进制再转成十六进制的。
原码计算
将十进制转为二进制,如果不足八位,在前面补0,直至满八位。
数值1 | 数值-1 | |
---|---|---|
原码 | 0000 0001 | 1000 0001 |
最高位为符 位(表格中加粗的),0表示整数,1表示负数
反码计算
数值1 | 数值-1 | 1-1 | |
---|---|---|---|
反码 | 0000 0001 | 1111 1110 | 1111 1111 |
正数的反码、补码、原码相同,负数的符 位保持不变,其余各位分别取反。
由此可得,
反码进行1-1的计算后得:1111 1111
由于是反码,求解时需要将其转为源码
符 位不变得:1000 0000
转为十进制得:-0,与我们需要得到的结果接近
我们平时肯定直接说0而不会说-0
补码计算
数值1 | 数值-1 | 1-1 | |
---|---|---|---|
补码 | 0000 0001 | 1111 1111 | 0000 0000 |
负数的补码在反码的基础上+1
1-1得到值为0,求解完毕。
移码计算
数值1 | 数值-1 | 1-1 | |
---|---|---|---|
移码 | 1000 0001 | 0111 1111 | 1000 0000 |
在补码的基础上将首位进行取反操作
原反补的取值范围
整数 | |
---|---|
原码 | -(2n-1-1)~2n-1-1 (设n=8,-127~127) |
反码 | -(2n-1-1)~2n-1-1 |
补码 | -2n-1~2n-1-1 |
补码之所以表示的范围比原码与反码多一位,是由于0与-0在原码与反码中表示的形式是不一样的,而在补码中的表示形式是一样的。
浮点数运算
浮点数表示:N = M×Re
M:尾数,e:指数,R:基数
运算步骤:对阶→尾数计算→结果格式化
例题:1×103+1.19×102
①1.19×102转为0.119×103
②1×103+0.119×103 = 1.119×103
结果格式化是指:结果必须是科学计数法的形式,第一位不能为0或小数点前只能有一位。
计算机结构
主机组成:CPU和主存储器(内存)
CISC与RISC
CISC:在计算机还没全面推广时提出的。
理论公式
t1,t2+…+tk表示的是分为几个部分
依照例题:分为了三个部分:取值,分析,执行
花费的时间分别是:2,2,1
相加结果为5
n表示的是共有几条指令
n-1是因为(t1+t2+…+tk)已经将第一条计算完毕了
Δt表示流水线周期
理论公式求解例题:(2+2+1)×(100-1)×2=203
实践公式
k表示分为几个部分,例题中分为3个部分
n表示共有几条指令
Δt表示流水线周期
实际公式求解例题:(3+100-1)××2=204
考试中一般采用理论公式,如果理论公式找不到答案再采用时间公式的答案
吞吐率(Though Put rate TP)计算
概念
单位时间内处理的任务的数量
公式
吞吐率最基本的公式:
加速比
概念
完成同一批任务,不适用流水线所用的时间与使用流水线所用的时间的比值。
公式
被有效利用的时间片:(Δt+Δt+Δt+3Δt)×4=24Δt
乘以4:共有4个任务执行
全部的时间片:15Δt*4=60Δt
乘以4:共有4个控件执行
从图中可以看出
E=24Δt/60Δt
综上:在每个部分所需要的时间都均等的清空下,效率较高。
层次化存储结构
局部性原理
时间局部性
刚刚被方位的指令立刻又需要被访问
空间局部性
当程序访问了一个空间后又立即访问了它相邻的控件。
主存
分类
随机存储器(RAM):内存(断点数据就丢失)
只读存储器(ROM):BIOS
总线
内部总线
系统总线:数据总线,地址总线,控制总线
外部总线
系统可靠性分析
串联系统
模冗余系统
差错控制
概念
前提条件:
采用1位长度的二进制编码。若A=1,B=0
采用2位长度的二进制编码。若A=11,B=00。
采用3位长度的二进制编码。若A=111,B=000。
检错:能够从接收到的编码中发现错误
假设传输的是1位长度的二进制编码A,在传输过程中发生错误1变为0,当接收方接收到位0时便会以为对方传输的时B,因为0与1都是合法的,因此时无法检错的。
假设传输的是2位长度的二进制编码A,在传输过程中发生错误11变为10,当接收方接收到位10时便会发现错误,因为10是非法的,但无法纠错。
纠错:能够从接收到的编码中发现错误并纠错
假设传输的是3位长度的二进制编码A,在传输过程中发生错误111变为110,当接收方接收到位110时便会发现错误,因为10是非法的,通常认为通信电路时比较靠谱的,不会出现多位的错误,因此会讲110与正确的编码进行对比,发现110与111更为接近,因此会讲110修正为111
码距:一个编码系统的码距使整个编码系统中任意(所有)两个码字的最小距离
例如采用1位长度的二进制编码。若A=1,B=0。
A与B之间至多只需要修改1位就能够表示对方,码距:1
A与B之间至多只需要修改2位就能够表示对方,码距:2
进程的同步与互斥
互斥(对应共享)
资源同一个时间只能有一个人使用
同步(对应异步)
速度快的要等速度慢的,相当于是两者必须同时完成工作
生产者消费者
将前驱图转为PV操作
将前驱图的每一个活动都转成相应的进程,然后在并发执行时,依然按照前驱图的约束关系先后执行
前驱图主要表达进行的这些活动的依赖关系
死锁问题
至少多少资源不会造成死锁
至少有多少系统资源不会发生死锁的题目:
首次适应算法(FF)
实现:将所有空闲分区按照地址递增的次序链接,在申请内存分配时,从链首开始查找,将满足需求的第一个空闲分区分配给作业。
特点:该算法倾向于使用内存中低地址部分的空闲区,在高地址部分的空闲区很少被利用,从而保留了高地址部分的大空闲区。显然为以后到达的大作业分配大的内存空间创造了条件。
不足:低地址部分不断被划分,留下许多难以利用、很小的空闲区,而每次查找又都从低地址部分开始,会增加查找的开销。
最佳适应算法(BF):
实现:将所有空闲分区按照从小到大的顺序形成空闲分区链,在申请内存分配时,总是把满足需求的、最小的空闲分区分配给作业。
特点:综合性能最好,算法开销小,回收分区后一般不需要对空闲分区队列重新排序,会有更多的大分区被保留下来,更能满足大进程需求。
不足:算法开销大,回收分区后可能需要对空闲分区队列重新排序。会产生很多太小的,难以利用的碎片。
最差适应算法(WF)
实现:将所有的空闲分区按照从大到小的顺序形成空闲分区链,在申请内存分配时,总是把满足需求的、最大的空闲分区分配给作业。
特点:减少难以利用的小碎片。
不足:大分区容易被用完,不利于大进程,算法开销大,原因同上。
循环首次适应算法(NF)
实现:将所有空闲分区按照地址递增的次序链接,在申请内存分配时,总是从上次找到的空闲分区的下一个空闲分区开始查找,将满足需求的第一个空闲分区分配给作业。
特点:不用每次都从低地址开始检索,算法开销小,原因同首次适应算法。
不足:高地址的大分区也被用完。
段页式存储
页式存储
段式存储
快表
先进先出置换算法(FIFO)
空闲存储空间的管理
虚拟设备与SPOOLING技术
数据库系统
数据库模式(三级模式-两级映射)
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!