计算机系统基础知识
(1)计算机硬件组成
计算机的基本硬件系统由运算器、控制器、存储器、输入设备和输出设备5 大部件组成。
- 运算器、控制器等部件被集成在一起统称为中央处理单元(Central ProcessingUnit,CPU)。CPU是硬件系统的核心,用于数据的加工处理,能完成各种算术逻辑运算及控制功能,
- 存储器是计算机系统中的记忆设备,分为内部存储器和外部存储器。前者速度高、容量小,一般用于临时存放程序、数据及中间结果。而后者容量大、速度慢,可以长期保存程序和数据。
- 输入设备和输出设备合称为外部设备(简称外设),输入设备用于输入原始数据及各种命令,而输出设备则用于输出计算机运行的结果。
(2)中央处理单元
①cpu的功能
- 程序控制。CPU通过执行指令来控制程序的执行顺序,这是CPU的重要功能
- 操作控制。一条指令功能的实现需要若干操作信号配合来完成,CPU产生每条指令的操作信号并将操作信号送往对应的部件,控制相应的部件按指令的功能要求进行操作。
- 时间控制。CPU 对各种操作进行时间上的控制,即指令执行过程中操作信号的出现时间、持续时间及出现的时间顺序都需要进行严格控制。
- 数据处理。CPU通过对数据进行算术运算及逻辑运算等方式进行加工处理(4)数据加工处理的结果被人们所利用。所以,对数据的加工处理也是CPU最根本的任务。
- 此外,CPU还需要对系统内部和外部的中断(异常)做出响应,进行相应的处理
②cpu的组成
CPU主要由运算器、控制器、寄存器组和内部总线等部件组成
- 运算器:由算术逻辑单元ALU(实现对数据的算术和逻辑运算)、累加寄存器AC(运算结果或源操作数的存放区)、数据缓冲寄存器DR(暂时存放内存的指令或数据)、和状态条件寄存器PSW(保存指令运行结果的条件码内容,如溢出标志等)组成。执行所有的算术运算,如加减乘除等;执行所有的逻辑运算并进行逻辑测试,3如与、或、非、比较等。
- 控制器:由指令寄存器IR(暂存CPU执行指令)、程序计数器PC(存放指令执行地址)地址寄存器AR(保存当前CPU所访问的内存地址)指令译码器ID(分析指令操作码)等组成。控制整个CPU的工作,最为重要
- CPU依据指令周期的不同阶段来区分二进制的指令和数据,因为在指令周期的不同阶段,指令会命令CPU分别去取指令或者数据。
(3)数据表示
①进制转换
进制的表示:二进制、十六进制,一般在题目中会给出中文说明,如果没给出,注意二进制符号为0b,一般表示为0b0011,十六进制符号为0x或H,可表示为0x18F或18FH。(十六进制可表示0-15,其中10-15用A-F来表示)
◆R进制整数转十进制:位权展开法,用R进制数的每一位乘以R的n次方,n是变量,从R进制数的整数最低位开始,依次为0,1,2,3...累加。
例如有6进制数5043,此时R=6,用6进制数的每一位乘以6的n次方,n是变量从6进制数的整数最低位开始(5043从低位到高位排列:3,4,0,5),n依次为0,1,2,3,那么最终5043=3*6^0+4*6^1+0*6^2+5*6^3=1107。
◆十进制转R进制:十进制整数(除以R倒取余数),用十进制整数除以R,记录每次所得余数,若商不为0,则继续除以R,直至商为0,而后将所有余数从下至上记录,排列成从左至右顺序,即为转换后的R进制数;
例:有十进制数200,转换为6进制,此时R=6,将200/6,得商为33,余数为2:因为商不等于0,因此再将商33/6,得商为5,余数为3;再将5/6,得商为0,余数为5;此时商为0,将所有余数从下到上记录,得532。
◆m进制转n进制:先将m进制转化为十进制数,再将十进制数转化为n进制数中间需要通过十进制中转,但下面两种进制间可以直接转化:
◆二进制转八进制:每三位二进制数转换为一位八进制数,二进制数位个数不是三的倍数,则在前面补0(原则是数值不变),如二进制数01101有五位,前面补一个0就有六位,为001101,每三位转换为一位八进制数,001=1,101=1+4-5,也即01101=15。
◆二进制转十六进制:每四位二进制数转换为一位十六进制数,二进制数位个数不是四的倍数,则在前面补0,如二进制数101101有六位,前面补两个0就有八位,为0010 1101,每四位转换为一位十六进制数,0010=2,1101=13=D,也即101101=2D。
②编码方式
◆ 带符号数有下列编码方式,当真值为-45时:
原码:一个数的正常二进制表示,最高位表示符号,数值0的源码有两种形式:。-45对应原码为10101101+0(00000000)和-0(10000000)
反码:正数的反码即原码;负数的反码是在原码的基础上,除符号位外,其他各位按位取反。数值0的反码也有两种形式:+0(00000000)0 .1111111)。-45对应反码为11010010
补码:正数的补码即原码:负数的补码是在原码的基础上,除符号位外,其他各位按位取反,而后末位+1。其他若有进位则产生进位。因此数值0的补码只有一种各位按位取反,而后末位+1,形式+0=-0=00000000。-45对应补码为11010011
移码:用作浮点运算的阶码,无论正数负数,都是将该原码的补码的首位(符号位)取反得到移码。-45对应移码为01010011
◆ 机器字长为n时各种码制表示的带符号数的取值范围(差别在于0的表示,原码和反码分+0和-0,补码只有一个0,因此可以多表示一个。):
◆ 浮点数:表示方法为N=F*2^E,其中E称为阶码,F称为尾数;类似于十进制的科学计数法,如85.125=0.85125*10^2,二进制如101.011=0.101011*2^3.
在浮点数的表示中,阶码为带符号的纯整数,尾数为带符号的纯小数,要注意符号占最高位(正数0负数1),其表示格式如下:
阶符 | 阶码 | 数符 | 尾数 |
◆尾数的表示采用规格化方法,也即带符号尾数的补码必须为1.0xxxx(负数)或者0.1xxxx(正数),其中x可为0或1.
浮点数的运算:
- 对阶(使两个数的阶码相同,小阶向大阶看齐,较小阶码增加几位,尾数就右移几位)
- 尾数计算(相加,若是减运算,则加负数)
- 结果规格化(即尾数表示规格化,带符号尾数转换为1.0xxxx或0.1xxxx)