作者主页: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 浮点数
表示方法:
- E:阶码
- F:尾数
类似于科学计数法。
比如
阶符 | 阶码 | 数符 | 尾数 |
---|
浮点数能表示的范围,由阶码决定。
浮点数能表示的精度,由尾数决定。
浮点数的运算(不考):对阶、尾数计算、结果规格化