Java教程

中级程序员考试备考笔记

本文主要是介绍中级程序员考试备考笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

笔记

  • 一、数据的表示
    • 1、进制转换
      • R进制转十进制使用“按权展开法”
      • 十进制转R进制使用“短除法”
    • 2、源码,补码和反码
    • 3、浮点数运算
    • 4、运算器和控制器的构成
  • 二、计算机体系结构分类——Flynn
  • 三、CISC和RISC两种指令类型的比较
  • 四、流水线
    • 流水线的概念
      • 1、流水线的计算
      • 2、流水线的吞吐率计算
      • 3、流水线的加速比
      • 4、流水线的效率
  • 五、计算机组成与体系结构
    • 层次化存储结构
      • 1、Cache的概念
      • 2、局部性原理
      • 3、主存分类
      • 4、主存编址计算
        • 练习1
        • 练习2
        • 练习3
      • 5、磁盘结构与参数
        • 练习1
      • 6、总线
      • 7、系统可靠性分析
        • 串联系统
        • 并联系统
        • 混合系统
      • 8、差错控制
        • 码距
        • 循环校验码CRC
        • 海明校验码


一、数据的表示

1、进制转换

点击跳转,进制转换详解

例如:

 在数字后面加上不同的字母来表示不同的进位制。
B(Binary)表示二进制,
O(Octal)表示八进制,
D(Decimal)或不加表示十进制,
H(Hexadecimal)表示十六进制。

例如:
将(101011)B转换成八进制,从右往左分割数字,每3位数字可以对应一个八进制位
则将101011分割为 101 和 011 ,且101= 5,011=3
所以(101011)B=(53)O

将(101011)B转换成十进制,
等于1×2^5+1×2^3+1×2^1+1×2^0 = 43
所以(101011)B=(43)D

将(101011)B转换成十六进制,从右往左分割数字,每4位数字可以对应一个十六进制位
则将101011分割为 10 和 1011 ,将10补全则为 0010 和 1011
且0010=1×2^1= 2,1011=1×2^3+1×2^1+1×2^0 = 11 = B
所以(101011)B==(2B)H

在这里插入图片描述

R进制转十进制使用“按权展开法”

例如:二进制转换成十进制:

10100.01 = 1×2^4+1×2^2+1×2^-2

例如:七进制转换成十进制:

604.01 = 6×7^2+4×7^0+1×7^-2

十进制转R进制使用“短除法”

例如:将十进制数94转换成2进制:
在这里插入图片描述
例如:2进制与8进制与16进制之间的转换:

2进制转8进制(从右往左每3位数字可以对应一个八进制位)
在这里插入图片描述
2进制转16进制(从右往左每4位数字可以对应一个十六进制位)

在十六进制中:

  • 10——用A表示
  • 11——用B表示
  • 12——用C表示
  • 13——用D表示
  • 14——用E表示
  • 15——用F表示
  • 16——用G表示

2、源码,补码和反码

点击查看:源码,补码和反码的探究

3、浮点数运算

在这里插入图片描述
例如:

1000——→1.0×10^3
119——→1.19×10^2
两数相加步骤:
首先对阶(将低阶转换成高阶,保证阶数相同)——→再进行尾数计算——→最后将结果格式化
1.19×10^2转换成0.119×10^3——→1.0+0.119=1.119——→将结果1.119×10^3格式化仍为×10^3(尾数不能为0,也不能超过1位数字)

注意:
格式化的结果不能是0.1119×10^4或者是11.19×10^2</font>

4、运算器和控制器的构成

在这里插入图片描述

二、计算机体系结构分类——Flynn

在这里插入图片描述


三、CISC和RISC两种指令类型的比较

在这里插入图片描述

四、流水线

流水线的概念

在这里插入图片描述

1、流水线的计算

在这里插入图片描述

例如:如上图所示,若指令流水线把一条指令分为取指、分析和执行三部分,且三部分的时间分别是取指2ns,分析2ns,执行1ns。那么,流水线周期是多少?100条指令全部执行完毕需要的时间是多少?

  • 流水线周期为执行时间最长的一段:故流水线周期是2ns,
  • 100条指令全部执行完毕需要的时间是:
流水线计算方式分为两种:

(1)理论公式:一条执行指令+(指令条数-1)×流水线周期
    (t1+t2+..+tk)+(n-1)×△t 即:(2+2+1)+(100-1)×2 =203

(2)实践公式:一个完整任务完成时间 +(指令条数-1)×流水线周期
    这里将每个部分时间工整化,都取2ns
    k+(n-1)×△t 即:6+(100-1)×2 =204

2、流水线的吞吐率计算

在这里插入图片描述
例如:计算上题的流水线吞吐率为多少?

流水线吞吐率 = 指令条数 / 流水线执行时间 
即:TP=100 / 203 = 0.493

3、流水线的加速比

在这里插入图片描述
例如:计算上题的流水线加速比为多少?

流水线加速比  = 不使用流水线执行时间 / 使用流水线执行时间

计算不使用流水线执行100条指令需要花费的时间 T = (2+2+1)×100 =500,使用流水线执行时间为203
故S = 500 / 203 =0.985

该比值的高低决定了流水线的效率的好快程度(即:比值越高,流水线效率越高)

4、流水线的效率

在这里插入图片描述
例如:计算上图的流水线效率为多少?

E = n个任务占用的时空区/ K 个流水线的总时空区
即:E = (△t +△t +△t +3△t )×4 / 15△t×4

相当于计算阴影面积占全部面积的比值

五、计算机组成与体系结构

层次化存储结构

在这里插入图片描述

寄存器容量极小,但速度非常快,故是属于存储结构的最高层
Cache是高速缓存存储器
内存
外存

速度从上往下逐步变慢,内存从上往下逐步增大(实际上是基于性价比的考量)

1、Cache的概念

在这里插入图片描述
例如:Cache的访问命中率为95%,Cache的周期时间为1ns,主储存器周期时间为1ms,求系统的平均周期?
系统的平均周期 = 访问命中率×Cache的周期时间+(1-访问命中率)×主储存器周期

2、局部性原理

在这里插入图片描述

3、主存分类

在这里插入图片描述

4、主存编址计算

在这里插入图片描述

换算:
1KB (Kilobyte 千字节) = 1024B = 2^10B
1MB (Megabyte 兆字节 简称“兆”) = 1024KB = 2^10KB
1GB (Gigabyte 吉字节 又称“千兆”) = 1024MB = 2^10MB

在内存中:
1KB = 1024B = 1024字节 = 2^10字节
1MB= 1024KB = 1048576字节 = 2^20字节
1GB= 1024MB = 1073741824字节 = 2^30字节
1TB= 1024GB = 1099511627776字节 = 2^40字节
1PB= 1024TB = 1125899906842624字节 = 2^50字节

练习1

在这里插入图片描述

解:字节换算:1MB=2^20B,故16MB=2^24B,
             1B(字节)=8bit,所以16MB=2^24×8bit,
且按字节编址,就是每8bit编一个地址,所以需要2^24×8bit/8bit=2^24个地址。
故要产生这么多地址,所以主存地址至少需要你用24个二进制数表示。

若上题改成用4为编址,则主存地址需要多少位?

解:字节换算:16MB=2^24×8bit,2^24×8bit/4bit=2^25个地址。
故要产生这么多地址,所以主存地址至少需要你用25个二进制数表示。

若改成改成按字编址,且该计算机为64位,则主存地址需要多少位?

解:字节换算:64bit=8B,16MB=2^24B,2^24B/8B=2^21个地址
故要产生这么多地址,所以主存地址至少需要你用21个二进制数表示。

练习2

内存按字节编址,地址从DFFFF到A0000, 共有多少字节?

点击跳转,十六进制加减法

解:计算内存容量DFFFF-A0000= 3FFFF
3FFFFH换成二进制就是0011 1111 1111 1111 1111,从右往左第18位是最后一个1,也就是2的18次方
即2^10×2^8=1KB*256,即256KB;

练习3

例如:计算机地址范围C000H等于48k的计算方式为:

在这里插入图片描述


计算下题:
在这里插入图片描述

解:
首先十六进制计算:尾地址-首地址+1,即C7FFFH-AC000H+1 = 1C000
然后转换为十进制:
1C000 = 0001 1100 0000 0000 0000 =2^16+2^15+2^14 B= 2^14(2^2+2^1+1)B =7×2^4×2^10B
最后字节换算:B与KB之间的转换:
7×2^4×2^10B/2^10 = 112KB,故共有112K个地址单元

求存储单元:
112×16/28×16×Y,即Y=4,故该芯片每个存储单元存储4位

5、磁盘结构与参数

在这里插入图片描述

练习1

在这里插入图片描述
根据图片解析:
在这里插入图片描述

解:磁盘旋转周期为33ms,说明磁盘转动一周经过11个物理块时间为33ms,每个物理块的读取时间为3ms
而每条记录的处理时间也为3ms,且为单缓冲区,一次只能处理单个物理块
故:R0的处理时间为3+3=6ms
每个物理块的处理时间=磁盘转动一周+处理时间
故:R1到R9都处理完花费时间为,(33+3)×10 =360ms
总处理时间360+6 = 366ms,因此48题答案选择C

分布优化后每个物理块所需时间为 = 读取时间 + 处理时间
即(3+3)×11 = 66ms,因此48题答案选择B

6、总线

在这里插入图片描述

7、系统可靠性分析

串联系统

在这里插入图片描述

并联系统

在这里插入图片描述

混合系统

在这里插入图片描述

8、差错控制

码距

在这里插入图片描述

循环校验码CRC

在这里插入图片描述
具体案例计算:

在这里插入图片描述

海明校验码

这篇关于中级程序员考试备考笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!