(4.1) 基本算术运算的实现

(4.1.1) 加法器
1. 全加器
- 组成:全加器以及配以的其他必要的逻辑电路。
- 加法单元:由3个输入量组成和两个输出量组成。
- 操作数A和B,进位C。
- 本位和S,向高位的进位C。
- 是最基本的加法单元。
2. 串行加法器与并行加法器

- 串行加法器:只有一个全加器,数据逐位串行送入加法器运算。
- 优点:器件少,成本低。
- 缺点:运算速度慢。
- 并行加法器:多个全加器组成,位数的多少取决于机器的字长,数据的各位同时运算。
- 缺点:受一个加法的最长运算时间影响。即低位的进位会影响高位的运算结果。
- 注:提高运算速度的关键:尽量加快进位的产生和低位传递进位的速度。
总结

(4.1.2) 进位的产生于传递
(4.1.3) 并行加法器的快速进位
(4.2) 定点加减运算
(4.2.1) 原码加减运算
当原码进行加减运算时,符号位并不参与运算,只有两数的绝对值进行运算。
* (4.2.2) 补码加减运算
1. 纯整数补码求法

2. 纯小数的补码求法

取反后加1
3. 补码的加减运算例子
- 参加运算的两个操作数用补码表示。
- 符号位要参与运算.
- 相减的话,先求出负数的补码,然后将两数的补码相加。
- 结果运算变回原码(除符号位外,其他位取反后加1),算出十进制。

4. 原码、补码、反码互相转换

5. 移码
知二进制求移码

求移码的真值
移码 0111 1110 的真值是?
求法一:
1. 将移码转换成无符号数真值:126
2. 减去偏置值 1000 0000 对应的无符号数真值128得到移码
126-128 = -2
求法二:
移码减去其偏置值 1000 0000
0111 1110 - 1000 0000
= 1111 1110
对应补码-2
有关真值的介绍:juejin.cn/post/684490…
* (4.2.3) 补码的溢出判断与检测方法
1. 采用一位符号

2. 采用进位位

3. 采用变形补码(双符号位补码)

- 左边的符号位叫做真符,代表了数的真正符号。
- 两个符号位都参与运算。
S1S2=00==> 结果为整数,无溢出S1S2=01==> 正溢出S1S2=10==> 负溢出S1S2=11==> 结果为负数,无溢出
11 + 7 = 18
00,1011
00,0111
———————
01,0010
产生正溢出
(4.3) 带符号数的移位和舍入运算
(4.3.1) 带符号数的移位操作
我们都知道,计算机是的字节单位中是没有存放.的位置的,所以,数的移动只是数位的移动而已。

1. 原码移位操作

(4.3.2) 带符号数的舍入操作
2. 补码、反码的移位规则

回顾

(4.4) 定点乘法运算
(4.4.1) 原码一位乘法
-
乘积
P = |X| * |Y| -
符号
A = |X| ^ |Y| -
写出两数的绝对值。
-
写出乘数的最低位。
- 为1则加被乘数;
- 为0则加0;
-
累加后的部分积连同乘积一起右移一位。
-
重复
n次以上步骤。n为乘数的位数。
已知:X=0.1101,Y=-0.1011,求X*Y
|X| = 00.1101,|Y|=.1011
... ===> 参考 p92

(4.4.2) 补码一位乘法
1. Booth 乘法
- 写出两数的补码。
- 符号位参与运算
- 乘数的最低位后面增加一个
0。 - 乘数的最低两位决定每次执行的操作。
00:部分积+0,且整体右移一位。01:部分积+[X补],且整体右移一位。10:部分积+[-X补],且整体右移一位。11:部分积+0,且整体右移一位。
- 移位规则按照补码移位规则做。
- 负数左移补
0,右移补1。
- 负数左移补
- 共做
n+1次累加,n次移位,最后第n+1次移位不需要。n为乘数的位数。
参考
p94例题
总结

强制类型转换

(4.5.2) 补码除法运算
1. 普通除法

2. 原码不恢复余数法
- 写出两数的绝对值,以及除数的相反数的补码(连同符号位取反加1)。
- 商的初始值为0,位数一般和X、Y相同。
- 第一步看被除数的符号。
- 如果为正数:-
|Y|补 - 如果为负数:+
|Y|补,
- 如果为正数:-
- 然后,看
+-后的余数的符号;- 正数商1,整体左移一位。
- 负数商0,整体左移一位。
- 最后两位符号位按位异或,得到最后的符号。
参考
p100的例题。
3. 补码加减交替法
- 写出
[X]补、[Y]补、[-Y]补。 - 第一步看
[X]补和[Y]补的符号情况;- 异号,+
[Y]补 - 同号,+
[-Y]补
- 异号,+
- 然后看余数和
[Y]补的符号情况;- 同号,商1,左移一位,+
[-Y]补 - 异号,商0,左移一位,+
[Y]补
- 同号,商1,左移一位,+
- 商的最末一位恒置为1
- 上的小数位数为
n,则运算n+1次,移位n次。
参考
p103例题
总结

(4.7) 十进制整数的加法运算
8421码加法运算
结果>9,要将结果+6 (0110)校正。
余3码
(4.8) 逻辑运算与实现
1. 逻辑符号

2. 复合逻辑

(4.9) 运算器的基本组成与实例
(4.9.1) 运算器结构
(4.9.2) ALU 举例



