1.定点数一位乘法

1.1定点原码一位乘法

原码相乘,积符号同号得正、异号得负,数值为两数绝对值之积。

例:X=0.1101,Y=0.1011,求两数之积

解:取双符号位

部分积右移时,乘数寄存器同时右移一位。计算用两位符号,结果保留一位符号。

X*Y=0.10001111

C d 是乘数位数的补码值,每计算一次减一次。

C n 是C寄存器中Y的最低位,为1则部分积加X,为0则部分积加0。

1.2定点补码一位乘法

被乘数 [X] =X 0 .X 1 X 2 ...X n ,乘数 [Y] =Y 0 .Y 1 Y 2 ...Y n

[X* Y] =[X] (0.Y 1 Y 2 ...Y n )-[X] * Y 0

Y 0 =1即Y为负数时,需要补充-[X] * Y 0 这一项,Y 0 =0即Y为正数时,不用这一项。剩下步骤和定点一位乘法一样,右移带符号。

[X * Y] =[X] * (-Y 0 +Y 1 2 -1 +Y 2 2 -2 +...+Y n 2 -n )=[X] 补* $\sum_{i=1}^n (Yi+1-Y i )2^i$

Y i+1 与Y i 为相邻两位,(Y i+1 -Y i )有0,1和-1三种情况,其运算规则如下:

(1) Y i+1 -Y i =0(Y i+1 Y i =00或11),部分积加0,右移1位。

(2) Y i+1 -Y i =1(Y i+1 Y i =10),部分积加[X] ,右移1位。

(3) Y i+1 -Y i =-1(Y i+1 Y i =01),部分积加[-X] ,右移1位.

最后一步(i=n+1)不移位。

1.3定点原码二位乘法

乘数都用原码,两位乘数有四种组合:

00:0*X。部分积P I 右移两位。

01:1*X。部分积P i +X,右移两位。

10:2*X。部分积P i +2X,右移两位。

11:3*X。部分积P i -X+4X,右移两位。

原码两位乘法规则表

Y I-1

求出$$delta(E)$$=E X -E Y ,保留大的那个,将小的那个的尾数右移delta(E)位,使X和Y阶码相等,过程中原码表示的符号位不移位,补0;补码表示的尾数保持符号位不变。

对阶后,尾数进行运算。

使尾数绝对值以最大值形式出现。

双符号原码规格化尾数:00.1xxxxx或11.1xxxxx

双符号补码规格化尾数:00.1xxxxx或11.0xxxxx

  • 若结果的两符号位不同,表示溢出,尾数右移1位,阶码加1,“右规”。
  • 若结果两符号位相同,表示不溢出,若最高数值位和符号位同,尾数连续左移,until不同,阶码减去移位数,“左规”。
  •