软件设计师学习笔记1 硬件组成-CPU-编码-浮点数

2024-06-14 08:21:37 浏览数 (2)

作者主页:Designer 小郑 作者简介:3年JAVA全栈开发经验,专注JAVA技术、系统定制、远程指导,致力于企业数字化转型,CSDN博客专家,阿里云社区专家博主,蓝桥云课讲师。

一、计算机硬件组成

计算机基本硬件系统由运算器、控制器、存储器、输入设备、输出设备组成。

CPU(中央处理单元)包括运算器、控制器,用于数据加工处理,能完成各种算数、逻辑运算及控制功能。

存储器是计算机的记忆设备,分为内部存储器和外部存储器

输入设备和输出设备合称为外部设备,简称外设。

二、中央处理单元

2.1 CPU的功能

  • 程序控制:CPU通过执行指令,来控制程序的执行顺序。
  • 操作控制:一条指令需要多个信号配合完成,CPU可以通过发送指令,控制不同部件的操作。
  • 时间控制:对各个结点进行时间节点上的控制。
  • 数据处理:进行算数运算和逻辑运算。

2.2 CPU的组成

运算器、控制器、寄存器组、内部总线。

考点1:哪些寄存器属于运算器 / 控制器?

考点2:每个寄存器是做什么的?

2.2.1 运算器

例:3 5 = 8。

  • 算数逻辑单元ALU:实现算数逻辑运算,可以存储一个源操作数:3
  • 累加寄存器AC:存储运算结果或一个源操作数:8 或 5
  • 数据缓存寄存器DR:暂存内存指令数据
  • 状态条件寄存器PSW:保存指令结果的条件码内容,如计算溢出,除零异常等等。
2.2.2 控制器

计算机执行指令,首先要找到下一条执行的指令在哪里(在程序计数器PC里),然后把指令从内存中取出来,保存在指令寄存器IR中,接着对指令进行分析(用指令译码器ID

  • 指令寄存器IR:暂存CPU的执行指令
  • 程序计数器PC:存放指令地址
  • 地址寄存器AR:保存CPU当前所访问的地址。
  • 指令译码器ID:分析指令操作码,分析指令是做什么的

取址(找到地址、取出)——分析——执行(需要操作数等)——

CPU是根据指令周期的不同阶段,来区分二进制的指令和数据的。

2.2.3寄存器组

是一个存储器,很小但速度快,32位 64位。

2.2.4 内部总线

通过总线,把CPU的各部件串联起来。

三、数据表示

3.1 进制转换

考点:二进制、十进制和十六进制的转换

  • R进制转10进制:位权展开法
  • 10进制转R进制:除于R倒取余数
  • M进制转N进制:结合以上两种方法

二进制:0b开头 十六进制:0x开头,或者H结尾

3.2 机器数

机器数:各种数值在计算机中表示的形式,使用二进制,小数点隐含不占位置。

可以分为无符号数和有符号数。

正数符号为0,负数符号为1

定点表示法

  • 纯小数
  • 纯整数

真值:机器数对应的实际数值。

3.3 原码转换

举例:-45

3.3.1 原码

一个数的二进制表示

代码语言:javascript复制
10101101
3.3.2 反码

正数的反码即原码负数在原码的基础上,符号位不变,其余取反

代码语言:javascript复制
11010010
3.3.3 补码

正数的补码即原码负数在原码的基础上,符号位不变,其余取反,再加 1,有进位则进位

代码语言:javascript复制
11010011
3.3.4 移码

在补码的基础上,首位取反

代码语言:javascript复制
01010011

原码和反码的范围,比补码和移码要少一位,一位0占了两个数( 0和-0),即能表示的数字范围少了一个。

类型

范围

原码

-127到 127

反码

-127到 127

补码

-128到 127

移码

-128到 127

真题:如果 2X 的补码为 90H,那么 X 的真值是? 答:首先 90H 是是十六进制,转换为二进制为 1001 0000,因首位是 1,所以为负数。 因负数的补码=原码数字位取反 1,所以 2X 的原码为 1001 0000 减 1 再数值位取反,结果为 11110000,即 -122 所以 X = -56

3.4 浮点数

表示方法:

N = F times 2^E
  • E:阶码
  • F:尾数

类似于科学计数法。

比如

85.125 = 0.85125 * 10^2
101.011 = 0.101011 * 2^3

阶符

阶码

数符

尾数

浮点数能表示的范围,由阶码决定。

浮点数能表示的精度,由尾数决定。

浮点数的运算(不考):对阶、尾数计算、结果规格化

0 人点赞