思维导图:
课程进度:
一、无符号数和有符号数
1.无符号数
寄存器位数反映无符号数的表示范围:
8位——0255
16位——065535
2.有符号数
机器数与真值
原码表示法
整数
小数
原码简单直观
补码表示法
(1) 补的概念
补码的提出:解决原码的加减符号不同意问题(用加法代替减法)
时钟:6点 -3 可用 + 9 代替-都变成3点,称 + 9 是 3 以 12 为模的补数(mod 12)
结论:
一个负数加上 “模” 即得该负数的补数
一个正数和一个负数互为补数时它们绝对值之和即为模数
(2) 正数的补数即为其本身
(3) 补码定义
(4) 求补码的快捷方式
当真值为负时,补码 可用 原码除符号位外每位取反,末位加 1 求得
反码表示法
除符号位每位取反
比较
移码表示法
定义
移码和补码的比较:补码与移码只差一个符号位
真值、补码和移码的对照
移码的特点
最小真值的移码为全 0
用移码表示浮点数的阶码能方便地判断浮点数的阶码大小
二、数的定点表示和浮点表示
1.定点表示
小数点固定在某一位置为定点数
在定点机中,小数位置固定,当处理数不是纯小数或纯整数时,必须乘上一个比例因子,否则会“溢出”
2.浮点表示
起因
编程困难,程序员要调节小数点的位置
数的表示范围小,为了能表示两个大小相差很大的数据,需要很长的机器字长;
数据存储单元的利用率往往很低
浮点
S:小数,可正可负
j:整数,可正可负
浮点形式
范围
浮点数规格化
1.基数不同,浮点数规格化形式不同:
r = 2 尾数最高位为 1
r = 4 尾数最高 2 位不全为 0
r = 8 尾数最高 3 位不全为 0
2.基数 r 越大,可表示的浮点数的范围越大,浮点数的精度降低:
r = 2 左规 尾数左移 1 位,阶码减 1
右规 尾数右移 1 位,阶码加 1
r = 4 左规 尾数左移 2 位,阶码减 1
右规 尾数右移 2 位,阶码加 1
r = 8 左规 尾数左移 3 位,阶码减 1
右规 尾数右移 3 位,阶码加 1
机器零
当浮点数尾数为 0 时,不论其阶码为何值按机器零处理
当浮点数阶码等于或小于它所表示的最小数时,不论尾数为何值,按机器零处理
3.定点数和浮点数比较
4.举例
5.IEEE 754标准
标准
举例
三、定点运算
1.移位运算
移位的意义
15.m = 1500. cm
小数点右移 2 位
机器用语 15 相对于小数点 左移 2 位
算术移位
规则
举例
算术移位的硬件实现
算术移位和逻辑移位的区别
算术移位:有符号数的移位逻辑左移:低位添 0,高位移丢
逻辑右移:高位添 0,低位移丢
逻辑移位:无符号数的移位
2.加法与减法运算
补码加减法运算的公式
加法
减法
举例
溢出的判断
一位符号位判溢出
参加操作的两个数(减法时即为被减数和“求补”以后的减数)符号相同,其结果的符号与原操作数的符号不同,即为溢出
两位符号位判溢出
结果的双符号位 相同 未溢出
结果的双符号位 不同 溢出
最高符号位代表其真正的符号
补码加减法的硬件配置
3.乘法运算
分析笔算乘法
笔算乘法改进
改进后的笔算乘法过程(竖式)
小结
乘法运算可用加和移位实现n = 4, 加 4 次,移 4 次
由乘数的末位决定被乘数是否与原部分积相加,然后 1 位形成新的部分积,同时 乘数 1 位(末位移丢),空出高位存放部分积的低位。
被乘数只与部分积的高位相加
硬件:3 个寄存器,其中2个具有移位功能;1 个全加器
原码一位乘
举例
硬件
补码一位乘
Booth算法
递推公式
举例
硬件
4.除法运算
分析笔算除法
笔算除法和机器除法的比较
原码除法
(1) 恢复余数法
(2) 不恢复余数法(加减交替法)
(3) 原码加减交替除法硬件配置
四、浮点四则运算
1. 对阶(小介看大介)
2.尾数求和
3. 规格化
左规
右规
4. 舍入
在 对阶 和 右规 过程中,可能出现尾数末位丢失引起误差,需考虑舍入
0 舍 1 入法
恒置 “1” 法
5. 溢出判断
五、算术逻辑单元
1.ALU电路
2.快速进位链1.串行进位链
2.并行进位链(先行进位,跳跃进位)
注:本篇除思维导图,其它图片均来自PPT课件和唐朔飞的《计算机组成原理》
👇欢迎评论转发٩(๑•̀ω•́๑)۶😜