当前位置:文档之家› 第4讲二进制乘法

第4讲二进制乘法

(3)Y符号任意: [XY]补 = X补[0.Y1Y2……Yn]+[-X]补Y0
符号位
校正法
❖ 当乘数y为正时,可按类似原码乘法的规则进 行运算。
❖ 当乘数为负时,把乘数的补码[y]补去掉符号位, 看成一个正数与[x]补相乘,然后加上[-x]补进 行校正。
按补码进行运算
❖ 按补码规则移位:右移补1,第二符号位一起移 ❖ “乘数的补码[y]补去掉符号位,当成一个正数与[x]补相
步数 条件 操作
A
00.0000
1) Cn=1 +B + 00.1101
00.1101
00.0110
2) Cn=1 +B + 00.1101
01.0011
3)×00..1101C10n11=0
B C
+0
1101
4)00101001Cn=1 +B
1101
00.1001 + 00.0000
00.1001 00.0100 + 00.1101 01.0001 00.1000
1 00101原 1 11011补
2. 末位恒置1(原码、补码) 例. 保留4位尾数: 0 00100原
1 00101原 1 11011补
0 0010原 1 0011原 1 1110补
0 0011原 1 0011原 1 1101补
1 定点数乘法运算
乘法 部分积累加、移位。
1 原码一位乘法
每次用一位乘数去乘被乘数。
(8) A.或
B.与
C.异或
D.分别取反后再进行或
2 补码一位乘法 1.算法分析
X补 = X0.X1X2……Xn
(1)Y为正:Y补 = 0.Y1Y2……Yn [XY]补 = X补[0.Y1Y2……Yn]
(2)Y为负:Y补 = 1.Y1Y2……Yn [XY]补 = X补[0.Y1Y2……Yn]+[-X]补
数符不变(单:符号位不变;双:第一符号
位不变)
空位补0(右移时第二符号位移至尾数最高位)
5.负数补码移位规则
(1)单符号位 : (2)双符号位:
1 1011 左移 1 0110 右移 1 1011 右移 1 1101
11 0110 左移 10 1100 右移 11 0110 右移 11 1011
(3)移位规则
11.0101 11.1010 + 00.0000 11.1010 11.1101 + 11.0101 11.0010 11.1001 + 11.0101 10.1110 11.0111
数符不变(单:符号位不变;双:第一符号
位不变)。
空位补0
4.正数补码移位规则
(1)单符号位 : (2)双符号位:
0 0111 左移 0 1110 右移 0 0111 右移 0 0011
(3)移位规则
00 0111 左移 00 1110 左移 01 1100 右移 00 1110 右移 00 0111
数位数有关)。
改进:将一次相加改为分步累加、移位。
(2)分步乘法
每次将一位乘数所对应的部分积与原部分 积的累加和相加,并移位。 设置寄存器:
A:存放部分积累加和、乘积高位 B:存放被乘数 C:存放乘数、乘积低位 设置初值: A = 00.0000 B = X = 00.1101 C = Y = .1011
数符不变(单:符号位不变;双:第一符号
位不变)
空位补0(右移时第二符号位移至尾数最高位)
3.负数原码移位规则
(1)单符号位 : (2)双符号位:
1 0101 左移 1 1010 右移 1 0101 右移 1 0010
11 0110 左移 10 1100 右移 11 0110 右移 11 0011
(3)移位规则
乘”——y仍然是补码
符号位参与运算,自动生成——与原码的不同之处 考虑到运算时可能出现绝对值大于1的情形(但此
刻并不是溢出),故部分积和被乘数取双符号位。
例 已知:[x]补=1.0101,[y]补=0.1101,求:[x·y]补。
解:因为乘数y>0,不用校正。
部分积
乘数
说明
00.0000 + 11.0101
3.运算规则
(1)操作数、结果用原码表示; (2)绝对值运算,符号单独处理; (3)被乘数(B)、累加和(A)取双符号位; (4)乘数末位(Cn)为判断位,其状态决定
下步操作; (5)作n次循环(累加、右移)。
习题
❖ 在进行原码乘法时,乘积的符号位是由被乘 数的符号位和乘数的符号位通过__(8C)__运算 来获得的。
计算机组成 原理
第4讲
二进制乘法运算
要求: 掌握原码一位乘法 理解补码一位乘法
0 移位操作 1 定点数一位乘法
2.正数原码移位规则
(1)单符号位 : (2)双符号位:
0 0111 左移 0 1110 右移 0 0111 右移 0 0011
(3)移位规则
00 0111 左移 00 1110 左移 01 1100 右移 00 1110 右移 00 0111
对于负数,三种机器数移位后符号位均不变。 ❖ 如果负数的原码左移时,高位丢1,结果出错;
低位丢1,影响精度。 ❖ 如果负数的补码左移时,高位丢0,结果出错;
低位丢1,影响精度。 ❖ 如果负数的反码左移时,高位丢0,结果出错;
低位丢0,影响精度。
舍入方法
1. 0舍1入(原码、补码) 例. 保留4位尾数: 0 00100原
1.算法分析 X原
Y原
例. 0.1101×1.1011
乘积 P = X × Y 积符 SP= SX SY
(1)手算 0.1101
×0.1011
1101
1101 001111
上符号:1.10001111
问题:1)加数增多(由乘数位数决定)。
2)加数的位数增多(与被乘数、乘
数符不变(单:符号位不变;双:第一符号
位不变)。
左移空位补0
右移空位补1(第二符号位移至尾数最高位)
不同码制机器数算术移位后的 空位添补规则
正数 负数
码制 原码、补码、反码
原码 补码
反码
添补代码
0 0 左移添0 右移添1 1
不同码制机器数算术移位
对于正数,三种机器数移位后符号位不变,如果左 移时最高数位丢1,结果“出错”;如果右移时最 低数位丢1,影响精度。
0.[10X0Y0]1原11=1X原×Y原 = 1.10001111
C Cn .1011 1.101 11.10 111.1 1111
2.算法流程
0 A、X B、Y C、0 CR
Cn = 1 ? N
Y
1/2(A+0)
1/2(A+B) A,C
A,C
CR + 1 CR
N CR = n ? Y
SX + SY SP
相关主题