- 整数乘法与小数乘法完全相同,可用 逗号 代替小数点
- 原码乘 符号位 单独处理;补码乘 符号位 自然形成;
- 原码乘去掉符号位运算,即为无符号数乘法。
- 不同的乘法运算需有不同的硬件支持
乘法运算可以通过硬件实现,也可以通过软件来实现;
- 软件方法:通过编写乘法程序,把乘法化为累次相加运算,从而在加法器中实现。该方法经济,但运算速度慢。
- 硬件方法:A、在加法器中增加一些移位和控制部件来实现。这种方法在早期的计算机采用。B、随着大规模集成电路的发展,现在设计了阵列乘法器。是专门实现多位数乘法的电路。
1,原码一位乘
结果:x*y=-0.10110110
例:计算0.1101*0.1011,结果:0.10001111
部分积 乘数 说明 0.0000
+0.1101
1011
初始化条件,部分积为0
乘数为1,加被乘数
0.1101
0.0110
+0.1101
1101
右移一位,形成新的部分积;乘数同时右移一位,乘数为1,加被乘数。
1.0011
0.1001
+0.0000
1
1110
右移一位,形成新的部分积;乘数同时右移一位,乘数为0,加上0。 0.1001
0.0100
+0.1101
11
1111
右移一位,形成新的部分积;乘数同时右移一位,乘数为1,加被乘数。 1.0001
0.1000
111
1111
右移一位,形成最终结果。
2,原码两位乘
原码一位乘:符号位 和 数值位 部分 分开运算。
原码两位乘:符号位 和 数值位 部分 分开运算。但原码两位乘是用两位乘法的状态来决定新的部分积如何形成,因此可提高运算速度。
ps:三位符号位为了防止丢失精度。
结果:x*y=-0.111000000111
3,补码一位乘法
4,补码二位乘法
将补码一位乘法(比较法)两步合成一步得补码两位乘法法则为:
1)初始设置:设部分积为0,增设Yn+1=0
2)符号参加运算:设部分积与被乘数三个符号位。乘数Y数值的位数为偶数设两个符号位;为奇数设一个符号位;
3)运算步骤:根据 Yn-1, Yn, Y n+1 判断操作;
4)最后一步:乘数Y数值的位数为偶数最后一步不移位;为奇数最后移一位。
部分积 乘数 说明 000.0000
+000.0101
1101010
判断位为后三位010,+x补
000.0101
000.0001
+000.0101
01 11010
右移
判断位为010,+x补
000.0110
000.0001
+111.1011
1001 110
右移
判断位为110,+(-x)补
111.1100 1001 最后一步不用移位 [XY]补 = 1.01110001