目录
🍊一、进制之间的转换
🍊二、原码、反码、补码和移码
原码
反码
补码
移码
🍊三、浮点数表示法
(1)浮点数表示
(2)两浮点数进行运算的过程
🍊四、校验码
(1)奇偶校验码
(2)海明码
(3)循环冗余校验码【(n,k)码】
【模二运算的知识拓展】
🍊 五、计算机系统的组成
🍊六、运算器和控制器的组成
运算器的组成:
控制器的组成:
🍊七、指令系统
立即寻址方式
直接寻址方式
间接寻址方式
寄存器寻址方式
寄存器间接寻址方式
🍊八、容量的换算
🍊九、内存编址
🍊十、高速缓存Cache
一、进制之间的转换
进制的种类:
二进制(B)、八进制(O)、十进制(D)、十六进制(H)
进制的转化:二进制、八进制、十进制、十六进制之间的相互转换。
二、原码、反码、补码和移码
原码
将数据用二进制形式表示,最高位为符号位,正数为0,负数为1。
我们用8位二进制表示一个数,+11的原码为00001011,-11的原码就是10001011。
计算机中所有的数均用0,1编码表示,数字的正负号也不例外,如果一个机器数字长是n位的话,约定最左边一位用作符号位,其余n-1位用于表示数值。
在符号位上用"0"表示正数;用"1"表示负数。数值位表示真值的绝对值。凡不足n-1位的,小数在最低位右边加零;整数则在最高位左边加零以补足n-1位。这种计算机的编码形式叫做原码。
反码
反码是数值存储的一种,多应用于系统环境设置,如Linux平台的目录和文件的默认权限的设置umask,就是使用反码原理。
正数的反码是其本身;负数的反码是在其原码的基础上,符号位不变,其余各位取反。
补码
补码是计算机把减法运算转化为加法运算的关键编码。
正数的补码是其本身;负数的补码是在其原码的基础上,符号位不变,在反码的基础上+1。
移码
移码(又叫增码或偏置码)通常用于表示浮点数的阶码,其表示形式与补码相似,只是其符号位用“1”表示正数,用“0”表示负数,数值部分与补码相同。
注意:在补码和移码表示中,0有唯一的编码,补码中+0和-0均为0000 0000(八位二进制表示下)。
多数计算机都采用补码进行加减运算,其符号位和数值位一样参与运算,无需做特殊处理。
在n位二进制表示下:
原码、反码表示的数据范围为:
补码、移码表示的数据范围为:
补码中,用1000 0000表示-128。
三、浮点数表示法
(1)浮点数表示
阶符± | 阶码e | 数符± | 尾数m |
特点:
阶码的位数决定数的表示范围,位数越多范围越大;尾数的位数决定数的有效精度,位数越多精度越高。
(2)两浮点数进行运算的过程
运算过程:
对阶>尾数计算>结果格式化
对阶时,小数向大数看齐,对阶是通过较小数的位数右移实现的。
四、校验码
校验码通常是一组数字的最后一位,由前面的数字通过某种运算得出,用以检验该组数字的正确性。如图所示:
(1)奇偶校验码
奇校验:整个校验码(有效信息位和校验位)中“1”的个数为奇数。
偶校验:整个校验码(有效信息位和校验位)中“1”的个数为偶数。
奇偶校验,可检查奇数个数位的错误,不可纠错。
(2)海明码
在数据之间插入K个校验位,通过扩大码距来实现检错和纠错。
(3)循环冗余校验码【(n,k)码】
信息码占k位,校验码占n-k位,校验码位数越长,校验能力越强。采用了模二运算。
【模二运算的知识拓展】
模二运算是一种二进制算法,CRC校验技术的核心部分。
模二加:+
模二减:-
模二乘:×或●
模二除:÷或 /
(模二运算不考虑进位和借位)
五、计算机系统的组成
六、运算器和控制器的组成
运算器的组成:
- 算术逻辑单元ALU:数据的算术运算和逻辑运算
- 累加寄存器AC:通用寄存器,为ALU提供一个工作区,用在暂存数据
- 数据缓冲寄存器DR:写内存时,暂存指令或数据
- 状态条件寄存器PSW:存状态标志与控制标志(争议:也有将其归为控制器的)
控制器的组成:
- 程序计数器PC:存储吓一跳要执行指令的地址
- 指令寄存器IR:存储正在执行的指令
- 指令译码器ID:对指令中的额操作码字段进行分析解释
- 时序部件:提供时序控制信号
七、指令系统
立即寻址方式
操作数直接在指令中,速度快,灵活性差
直接寻址方式
指令中存放的是操作数的地址
间接寻址方式
指令中存放了一个地址,这个地址对应的内容就是操作数的地址
寄存器寻址方式
寄存器存放操作数
寄存器间接寻址方式
寄存器内存放的是操作数的地址
计算机中最基本的单位基准时间为时钟周期。
在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,每一项工作称为一个基本操作,完成一个基本操作所需要的时间称为机器周期(也称CPU周期)。
指令周期是指取出并完成一条指令所需的时间,一般由若干个机器周期组成。
总结:
指令周期>机器周期>时钟周期
八、容量的换算
位(b/bit):存放一位二进制数
字节(B/Byte):8个二进制位为一个字节
1B=8b 1KB=1024B 1MB=1024KB 1GB=1024MB
1TB=1024GB 1PB=1024TB 1EB=1024PB 1ZB=1024EB
1YB=1024ZB
九、内存编址
内存编址:存储器由一块块的空间(存储单元)组成,为了方便寻找到每一块空间,我们需要对每一个空间进行标识,即用地址(唯一的编号)来标识内存每个单元。
内存容量=每个芯片容量*芯片个数
每个芯片的容量=一个地址代表的容量*编址总数
十、高速缓存Cache
基于成本和性能方面的考虑,Cache(即高速缓存)是为了解决相对较慢的主存与快速的CPU之间工作速度不匹配问题而引入的存储器。
Cache中存储的是主存内容的副本。
在计算机的存储系统体系中,Cache是访问速度最快的层次(若有寄存器,则寄存器最快)。
使用Cache改善系统性能的依据是程序的局部性原理:
时间局部性:某条指令一旦执行,可能将会再次被执行;某数据被访问,可能将会再次被访问。
空间局部性:某程序一日访问了某个存储单元,其附近的存储单元也可能将会被访问。