考研_计算机组成原理
第1章-概论
-
冯·诺依曼提出的新型计算机的五大结构: 运算器,控制器,存储器,输入设备和输出设备
-
计算机主要性能指标
- 基本字长: 处理器中参加一次定点运算的操作位的位数(计算机中的算术运算分为定点运算和浮点运算)
- 外频: 主板上的振荡器输出的时钟频率,也是计算机一切硬件部件工作所依据的基准时钟信号
- CPU的主频: CPU内核的工作频率,。
- IPS: 平均每秒执行的指令数(Instructions Per Second)
- CPI: 平均每条指令的时钟周期数(Clock cycles Per Instructions)
第2章-数据的表示、运算和校验
8位有符号数原码和补码的范围区别:
- 原码:
- 反码:
当数据时,由于原码和补码是相同的,所以从到是一一对应的
当数据时,从到是一一对应的
关键点在于原码中存在一个,对应二进制为,在转化为补码时会出现溢出的问题,所以就将作为补码中的
定点数和浮点数
定点数
- 位无符号定点整数范围:
- 位有符号定点整数范围:
原码:
补码: - 有符号定点小数:最高位是符号位,小数点后为有效位(x.xxxxx)
同有符号定点整数一样,原码存在的,但在补码中其对应着
浮点数
-
表示形态:
为真值,为比例因子,为尾数
-
规格化
规格化要求:
对于正数,无论原码还是补码,规格化特征为
对于负数,原码规格化特征为,补码规格化特征为
原因在于判断的值时,负数的补码需要先转化为原码,补码的才能保证注:规格化时有两个特殊的数值和
在原码表示中不符合规格化要求(原码表示不会出现),但补码中符合(因为补码1.0的特殊性)
在原码表示中符合规格化要求,但补码中不符合(原码和补码都是1.1)
定点数的四则运算
加减法
计算规则
需要说明的是:
可以在y的原码基础上将符号位取反获得-y的原码,之后除符号位取反加1获得补码
也可以直接对y求变补,即对包含符号位的所有位取反再加1。两种方法本质上是一样的
符号位同样参与运算,当符号位产生进位时,丢弃掉最高位的进位
溢出判断
同号相加和异号相减会使得结果的绝对值增大从而可能产生溢出
-
判断方法1:
因为即使是减法运算,最终我们也是转化为了加法运算。设转化为加法运算后的数据为,对应的符号位依次是,运算后结果的符号位是。则。变送发生了溢出,表示未发生溢出。原理是当(两正数相加,结果为负数)或(两负数相加,结果为正数)时说明发生了溢出
-
判断方法2:
设为最高有效数位(符号位低一位)产生的仅为,为符号位产生的进位。
-
判断方法3:
采用双符号位,00-结果为正,无溢出;11-结果为负,无溢出;01-结果正溢;10-结果负溢
设第一符号位和第二符号位依次位,
乘法
原码一位乘
取两操作数的绝对值进行相乘,具体过程见下图。
补码一位乘
原码两位乘
除法
原码不恢复余数
补码不恢复余数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理