计算机组成原理(第三版)唐朔飞-第六章计算机的运算方法-课后习题(17-32)

目录

第六章

17.设机器数字长为8位(含1位符号位),对下列各机器数进行算术左移一位、两位,算术右移一位、两位,讨论结果是否正确。

[ x 1 ] 原 = 0.001   1010 ; [ y 1 ] 补 = 0.101   0100 ; [ z 1 ] 反 = 1.010   1111 ; [x1]_原=0.001\ 1010;[y1]_补=0.101\ 0100;[z1]_反=1.010\ 1111; [x1]=0.001 1010;[y1]=0.101 0100;[z1]=1.010 1111;
[ x 2 ] 原 = 1.110   1000 ; [ y 2 ] 补 = 1.110   1000 ; [ z 2 ] 反 = 1.110   1000 ; [x2]_原=1.110\ 1000;[y2]_补=1.110\ 1000;[z2]_反=1.110\ 1000; [x2]=1.110 1000;[y2]=1.110 1000;[z2]=1.110 1000;
[ x 3 ] 原 = 1.001   1001 ; [ y 3 ] 补 = 1.001   1001 ; [ z 3 ] 反 = 1.001   1001 。 [x3]_原=1.001\ 1001;[y3]_补=1.001\ 1001;[z3]_反=1.001\ 1001。 [x3]=1.001 1001;[y3]=1.001 1001;[z3]=1.001 1001
答:
算术左移一位:
[ x 1 ] 原 = 0.011   0100 ; 正确 [x_1]_原=0.011\ 0100;正确 [x1]=0.011 0100;正确
[ x 2 ] 原 = 1.101   0000 ; 溢出 ( 丢 1 ) 出错 [x_2]_原=1.101\ 0000;溢出(丢1)出错 [x2]=1.101 0000;溢出(1)出错
[ x 3 ] 原 = 1.011   0010 ; 正确 [x_3]_原=1.011\ 0010;正确 [x3]=1.011 0010;正确
[ y 1 ] 补 = 0.010   1000 ; 溢出 ( 丢 1 ) 出错 [y_1]_补=0.010\ 1000;溢出(丢1)出错 [y1]=0.010 1000;溢出(1)出错
[ y 2 ] 补 = 1.101   0000 ; 正确 [y_2]_补=1.101\ 0000;正确 [y2]=1.101 0000;正确
[ y 3 ] 补 = 1.011   0010 ; 溢出 ( 丢 0 ) 出错 [y_3]_补=1.011\ 0010;溢出(丢0)出错 [y3]=1.011 0010;溢出(0)出错
[ z 1 ] 反 = 1.101   1111 ; 溢出 ( 丢 0 ) 出错 [z_1]_反=1.101\ 1111;溢出(丢0)出错 [z1]=1.101 1111;溢出(0)出错
[ z 2 ] 反 = 1.101   0001 ; 正确 [z_2]_反=1.101\ 0001;正确 [z2]=1.101 0001;正确
[ z 3 ] 反 = 1.011   0011 ; 溢出 ( 丢 0 ) 出错 [z_3]_反=1.011\ 0011;溢出(丢0)出错 [z3]=1.011 0011;溢出(0)出错

算术左移两位:
[ x 1 ] 原 = 0.110   1000 ; 正确 [x_1]_原=0.110\ 1000;正确 [x1]=0.110 1000;正确
[ x 2 ] 原 = 1.010   0000 ; 溢出 ( 丢 11 ) 出错 [x_2]_原=1.010\ 0000;溢出(丢11)出错 [x2]=1.010 0000;溢出(11)出错
[ x 3 ] 原 = 1.110   0100 ; 正确 [x_3]_原=1. 110\ 0100;正确 [x3]=1.110 0100;正确
[ y 1 ] 补 = 0.101   0000 ; 溢出 ( 丢 10 ) 出错 [y_1]_补=0.101\ 0000;溢出(丢10)出错 [y1]=0.101 0000;溢出(10)出错
[ y 2 ] 补 = 1.010   0000 ; 正确 [y_2]_补=1.010\ 0000;正确 [y2]=1.010 0000;正确
[ y 3 ] 补 = 1.110   0100 ; 溢出 ( 丢 00 ) 出错 [y_3]_补=1.110\ 0100;溢出(丢00)出错 [y3]=1.110 0100;溢出(00)出错
[ z 1 ] 反 = 1.011   1111 ; 溢出 ( 丢 01 ) 出错 [z_1]_反=1.011\ 1111;溢出(丢01)出错 [z1]=1.011 1111;溢出(01)出错
[ z 2 ] 反 = 1.010   0011 ; 正确 [z_2]_反 =1.010\ 0011;正确 [z2]=1.010 0011;正确
[ z 3 ] 反 = 1.110   0111 ; 溢出 ( 丢 00 ) 出错 [z_3]_反 =1.110\ 0111;溢出(丢00)出错 [z3]=1.110 0111;溢出(00)出错

算术右移一位:
[ x 1 ] 原 = 0.000   1101 ; 正确 [x_1]_原=0.000\ 1101;正确 [x1]=0.000 1101;正确
[ x 2 ] 原 = 1.011   0100 ; 正确 [x_2]_原=1.011\ 0100;正确 [x2]=1.011 0100;正确
[ x 3 ] 原 = 1.000   1100 ( 1 ) ; 丢 1 ,产生误差 [x_3]_原=1.000\ 1100(1);丢1,产生误差 [x3]=1.000 1100(1);1,产生误差
[ y 1 ] 补 = 0.010   1010 ; 正确 [y_1]_补=0.010\ 1010;正确 [y1]=0.010 1010;正确
[ y 2 ] 补 = 1.111   0100 ; 正确 [y_2]_补=1.111\ 0100;正确 [y2]=1.111 0100;正确
[ y 3 ] 补 = 1.100   1100 ( 1 ) ; 丢 1 ,产生误差 [y_3]_补=1.100\ 1100(1);丢1,产生误差 [y3]=1.100 1100(1);1,产生误差
[ z 1 ] 反 = 1.101   0111 ; 正确 [z_1]_反=1.101\ 0111;正确 [z1]=1.101 0111;正确
[ z 2 ] 反 = 1.111   0100 ( 0 ) ; 丢 0 ,产生误差 [z_2]_反=1.111\ 0100(0);丢0,产生误差 [z2]=1.111 0100(0);0,产生误差
[ z 3 ] 反 = 1.100   1100 ; 正确 [z_3]_反=1.100\ 1100;正确 [z3]=1.100 1100;正确

算术右移两位:
[ x 1 ] 原 = 0.000   0110 ( 10 ) ; 产生误差 [x_1]_原=0.000\ 0110(10);产生误差 [x1]=0.000 0110(10);产生误差
[ x 2 ] 原 = 1.001   1010 ; 正确 [x_2]_原=1.001\ 1010;正确 [x2]=1.001 1010;正确
[ x 3 ] 原 = 1.000   0110 ( 01 ) ; 产生误差 [x_3]_原=1.000\ 0110(01);产生误差 [x3]=1.000 0110(01);产生误差
[ y 1 ] 补 = 0.001   0101 ; 正确 [y_1]_补=0.001\ 0101;正确 [y1]=0.001 0101;正确
[ y 2 ] 补 = 1.111   1010 ; 正确 [y_2]_补=1.111\ 1010;正确 [y2]=1.111 1010;正确
[ y 3 ] 补 = 1.110   0110 ( 01 ) ; 产生误差 [y_3]_补=1.110\ 0110(01);产生误差 [y3]=1.110 0110(01);产生误差
[ z 1 ] 反 = 1.110   1011 ; 正确 [z_1]_反=1.110\ 1011;正确 [z1]=1.110 1011;正确
[ z 2 ] 反 = 1.111   1010 ( 00 ) ; 产生误差 [z_2]_反=1.111\ 1010(00);产生误差 [z2]=1.111 1010(00);产生误差
[ z 3 ] 反 = 1.110   0110 ( 01 ) ; 产生误差 [z_3]_反=1.110\ 0110(01);产生误差 [z3]=1.110 0110(01);产生误差

18.试比较逻辑移位和算术移位。

答:
逻辑移位和算术移位的区别:
逻辑移位是对逻辑数或无符号数进行的移位,其特点是不论左移还是右移,空出位均补0,移位时不考虑符号位。
算术移位是对带符号数进行的移位操作,其关键规则是移位时符号位保持不变,空出位的补入值与数的正负、移位方向、采用的码制等有关。补码或反码右移时具有符号延伸特性。左移时可能产生溢出错误,右移时可能丢失精度

19.设机器数字长为8位(含1位符号位),用补码运算规则计算下列各题。

(1)A=9/64,B=-13/32,求A+B;
(2)A=19/32,B=-17/128,求A-B;
(3)A=-3/16,B=9/32, 求A+B;
(4)A=-87, B=53, 求A-B;
(5)A=115,B=-24, 求A+B。
答:
( 1 ) A = 9 / 64 = ( 0.001   0010 ) 2 B = − 13 / 32 = ( − 0.011   0100 ) 2 (1)A=9/64=(0.001\ 0010)_2\\ B=-13/32=(-0.011\ 0100)_2 (1)A=9/64=(0.001 0010)2B=13/32=(0.011 0100)2
[ A ] 补 = 0.001   0010 [A]_补=0.001\ 0010 [A]=0.001 0010
[ B ] 补 = 1.100   1100 [B]_补=1.100\ 1100 [B]=1.100 1100
[ A + B ] 补 = [A+B]_补= [A+B]=
0.001   0010 + 1.100   1100 1.101   1110 ——无溢出 \begin{array}{c} &0.001\ 0010 \\ +&1.100\ 1100\\ \hline &1.101\ 1110&——无溢出 \\ \end{array} +0.001 00101.100 11001.101 1110——无溢出
A + B = ( − 0.010   0010 ) 2 = − 17 / 64 A+B=(-0.010\ 0010)_2= -17/64 A+B=(0.010 0010)2=17/64

( 2 ) A = 19 / 32 = ( 0.100   1100 ) 2 B = − 17 / 128 = ( − 0.001   0001 ) 2 (2)A=19/32=(0.100\ 1100)_2\\ B=-17/128=(-0.001\ 0001)_2 (2)A=19/32=(0.100 1100)2B=17/128=(0.001 0001)2
[ A ] 补 = 0.100   1100 [A]_补=0.100\ 1100 [A]=0.100 1100
[ B ] 补 = 1.110   1111 [B]_补=1.110\ 1111 [B]=1.110 1111
[ − B ] 补 = 0.001   0001 [-B]_补=0.001\ 0001 [B]=0.001 0001
[ A − B ] 补 = [A-B]_补= [AB]=
0.100   1100 + 0.001   0001 0.101   1101 ——无溢出 \begin{array}{c} &0.100\ 1100\\ +&0.001\ 0001\\ \hline &0.101\ 1101&——无溢出 \\ \end{array} +0.100 11000.001 00010.101 1101——无溢出
A − B = ( 0.101   1101 ) 2 = 93 / 128 A-B= (0.101\ 1101)_2= 93/128 AB=(0.101 1101)2=93/128

( 3 ) A = − 3 / 16 = ( − 0.001   1000 ) 2 B = 9 / 32 = ( 0.010   0100 ) 2 (3)A=-3/16=(-0.001\ 1000)_2\\ B=9/32=(0.010\ 0100)_2 (3)A=3/16=(0.001 1000)2B=9/32=(0.010 0100)2
[ A ] 补 = 1.110   1000 [A]_补=1.110\ 1000 [A]=1.110 1000
[ B ] 补 = 0.010   0100 [B]_补=0.010\ 0100 [B]=0.010 0100
[ A + B ] 补 = [A+B]_补= [A+B]=
1.110   1000 + 0.010   0100 0.000   1100 ——无溢出 \begin{array}{c} &1.110\ 1000\\ +&0.010\ 0100\\ \hline &0.000\ 1100&——无溢出 \\ \end{array} +1.110 10000.010 01000.000 1100——无溢出
A + B = ( 0.000   1100 ) 2 = 3 / 32 A+B= (0.000\ 1100)_2= 3/32 A+B=(0.000 1100)2=3/32

( 4 ) A = − 87 = ( − 101   0111 ) 2 B = 53 = ( 110   101 ) 2 (4)A=-87=(-101\ 0111)_2\\ B=53=(110\ 101)_2 (4)A=87=(101 0111)2B=53=(110 101)2
[ A ] 补 = 1 , 010   1001 [A]_补=1,010\ 1001 [A]=1,010 1001
[ B ] 补 = 0 , 011   0101 [B]_补=0,011\ 0101 [B]=0,011 0101
[ − B ] 补 = 1 , 100   1011 [-B]_补=1,100\ 1011 [B]=1,100 1011
[ A − B ] 补 = [A-B]_补= [AB]=
1 , 010   1001 + 1 , 100   1011 0 , 111   0100 ——溢出 \begin{array}{c} &1,010\ 1001\\ +&1,100\ 1011\\ \hline &0,111\ 0100&——溢出 \\ \end{array} +1,010 10011,100 10110,111 0100——溢出
A − B = ( − 1 , 000   1100 ) 2 = − 140 A-B=(-1,000\ 1100)_2= -140 AB=(1,000 1100)2=140

( 5 ) A = 115 = ( 111   0011 ) 2 B = − 24 = ( − 11   000 ) 2 (5)A=115=(111\ 0011)_2\\ B=-24=(-11\ 000)_2 (5)A=115=(111 0011)2B=24=(11 000)2
[ A ] 补 = 0 , 111   0011 [A]_补=0,111\ 0011 [A]=0,111 0011
[ B ] 补 = 1 , 110   1000 [B]_补=1,110\ 1000 [B]=1,110 1000
[ A + B ] 补 = [A+B]_补= [A+B]=
0 , 111   0011 + 1 , 110   1000 0 , 101   1011 ——无溢出 \begin{array}{c} &0,111\ 0011\\ +&1,110\ 1000\\ \hline &0,101\ 1011&——无溢出 \\ \end{array} +0,111 00111,110 10000,101 1011——无溢出
A + B = ( 101   1011 ) 2 = 91 A+B= (101\ 1011)_2= 91 A+B=(101 1011)2=91
注意:
1、单符号位运算要用单符号位的判断方法判溢出;
2、结果的真值形式上要和原始数据一致

20.用原码一位乘、两位乘和补码一位乘(Booth算法)、两位乘计算x·y。

(1)x=0.110 111,y=-0.101 110;
(2)x=-0.010 111,y=-0.010 101:
(3)x=19, y= 35;
(4)x= 0.110 11, y= -0.111 01。
答:
先将数据转换成所需的机器数,然后计算,最后结果转换成真值。 ( 1 ) [ x ] 原 = x = 0.110111 , [ y ] 原 = 1.101110 x ∗ = 0.110111 , y ∗ = 0.101110 x 0 = 0 , y 0 = 1 , z 0 = x 0 ⊕ y 0 = 0 ⊕ 1 = 1 x ∗ × y ∗ = 0.100   111   100   010 先将数据转换成所需的机器数,然后计算,最后结果转换成真值。\\ (1)[x]_原=x=0.110111,[y]_原=1.101110\\ x^*=0.110111,y^*=0.101110 \\ x_0=0,y_0=1,z_0=x_0\oplus y_0=0\oplus 1=1 \\ x^*\times y^*=0.100\ 111\ 100\ 010 先将数据转换成所需的机器数,然后计算,最后结果转换成真值。(1)[x]=x=0.110111[y]=1.101110x=0.110111y=0.101110x0=0y0=1z0=x0y0=01=1x×y=0.100 111 100 010
[ x × y ] 原 = 1.100   111   100   010 x ⋅ y = − 0.100   111   100   010 [x\times y]_原=1.100\ 111\ 100\ 010\\ x·y=-0.100\ 111\ 100\ 010 [x×y]=1.100 111 100 010xy=0.100 111 100 010
原码一位乘:
( → 1 表示右移一位 ) (\to 1表示右移一位) (1表示右移一位)
在这里插入图片描述

2 x ∗ = 01.101110 , [ − x ∗ ] 补 = [ − x ] 补 = 1.001001 2x^*=01.101110,[-x^*]_补=[-x]_补=1.001001 2x=01.101110[x]=[x]=1.001001
原码两位乘:
在这里插入图片描述
结果同一位乘, x ⋅ y = − 0.100   111   100   010 结果同一位乘,x·y=-0.100\ 111\ 100\ 010 结果同一位乘,xy=0.100 111 100 010
[ x ] 补 = x = 0.110   111 [x]_补=x=0.110\ 111 [x]=x=0.110 111
[ y ] 补 = 1.010   010 [y]_补=1.010\ 010 [y]=1.010 010
[ − x ] 补 = 1.001   001 [-x]_补=1.001\ 001 [x]=1.001 001
[ 2 x ] 补 = 01.101   110 [2x]_补=01.101\ 110 [2x]=01.101 110
[ − 2 x ] 补 = 10.010   010 [-2x]_补=10.010\ 010 [2x]=10.010 010
[ x × y ] 补 = 1.011   000   011   110   0 [x\times y]_补=1.011\ 000\ 011\ 110\ 0 [x×y]=1.011 000 011 110 0
x ⋅ y = − 0.100   111   100   010   0 x·y=-0.100\ 111\ 100\ 010\ 0 xy=0.100 111 100 010 0
补码一位乘、两位乘运算过程如下 : 补码一位乘、两位乘运算过程如下: 补码一位乘、两位乘运算过程如下:
补码一位乘:
在这里插入图片描述

补码两位乘:
在这里插入图片描述
结果同补码一位乘, x ⋅ y = − 0.100   111   100   010   00 结果同补码一位乘,x·y=-0.100\ 111\ 100\ 010\ 00 结果同补码一位乘,xy=0.100 111 100 010 00

( 2 ) x = − 0.010111 , y = − 0.010101 (2)x=-0.010111, y=-0.010101 (2)x=0.010111y=0.010101
[ x ] 原 = 1.010111 , [ y ] 原 = 1.010101 [x]_原=1.010111, [y]_原=1.010101 [x]=1.010111[y]=1.010101
x ∗ = 0.010111 , y ∗ = 0.010101 x^*=0.010111, y^*=0.010101 x=0.010111y=0.010101
[ − x ∗ ] 补 = 1.101001 , 2 x ∗ = 0.101110 [-x^*]_补=1.101001,2x^*=0.101110 [x]=1.1010012x=0.101110
[ − 2 x ∗ ] 补 = 1.010010 [-2x^*]_补=1.010010 [2x]=1.010010
x 0 = 1 , y 0 = 1 , z 0 = x 0 ⊕ y 0 = 1 ⊕ 1 = 0 x_0=1,y_0=1,z_0=x_0\oplus y_0=1\oplus 1=0 x0=1y0=1z0=x0y0=11=0
[ x ] 补 = 1.101001 , [ y ] 补 = 1.101011 [x]_补=1.101001,[y]_补=1.101011 [x]=1.101001[y]=1.101011
[ − x ] 补 = 0.010111 , [ 2 x ] 补 = 1.010010 [-x]_补=0.010111,[2x]_补=1.010010 [x]=0.010111[2x]=1.010010
[ − 2 x ] 补 = 0.101110 [-2x]_补=0.101110 [2x]=0.101110
x ∗ × y ∗ = 0.000   111   100   011 x^*\times y^*=0.000\ 111\ 100\ 011 x×y=0.000 111 100 011
[ x × y ] 原 = 0.000   111   100   011 [x\times y]_原=0.000\ 111\ 100\ 011 [x×y]=0.000 111 100 011
[ x × y ] 补 = 0.000   111   100   011   0 [x\times y]_补=0.000\ 111\ 100\ 011\ 0 [x×y]=0.000 111 100 011 0
x ⋅ y = 0.000   111   100   011 x·y= 0.000\ 111\ 100\ 011 xy=0.000 111 100 011
运算过程如下 : 运算过程如下: 运算过程如下:
原码一位乘:
在这里插入图片描述

原码两位乘:
在这里插入图片描述
结果同一位乘, x ⋅ y = 0.000   111   100   011 结果同一位乘,x·y= 0.000\ 111\ 100\ 011 结果同一位乘,xy=0.000 111 100 011
补码一位乘:
在这里插入图片描述
补码两位乘:
在这里插入图片描述
结果同补码一位乘, x ⋅ y = 0.000   111   100   011   00 结果同补码一位乘,x·y= 0.000\ 111\ 100\ 011\ 00 结果同补码一位乘,xy=0.000 111 100 011 00

( 3 ) x = 19 , y = 35 x = ( 10011 ) 2 , y = ( 100   011 ) 2 x ∗ = [ x ] 原 = [ x ] 补 = 0 , 010   011 y ∗ = [ y ] 原 = [ y ] 补 = 0 , 100   011 (3)x=19, y= 35 \\ x=(10 011)_2,y=(100\ 011)_2 \\ x^*=[x]_原=[x]_补=0,010\ 011 \\ y*=[y]_原=[y]_补=0,100\ 011 (3)x=19y=35x=(10011)2y=(100 011)2x=[x]=[x]=0,010 011y=[y]=[y]=0,100 011
[ − x ∗ ] 补 = [ − x ] 补 = 1 , 101   101 x ∗ = [ 2 x ] 补 = 0 , 100   110 [-x^*]_补=[-x]_补=1,101\ 101\\ x^*= [2x]_补=0,100\ 110 [x]=[x]=1,101 101x=[2x]=0,100 110
[ − 2 x ∗ ] 补 = [ − 2 x ] 补 = 1 , 011   010 x 0 = 0 , y 0 = 0 , z 0 = x 0 ⊕ y 0 = 0 ⊕ 0 = 0 x ⋅ y = x ∗ × y ∗ = [ x × y ] 原 = [ x × y ] 补 = 0 , 001   010   011   001 = ( 665 ) 10 运算过程如下 : [-2x^*]_补=[-2x]_补=1,011\ 010\\ x_0=0,y_0=0,z_0=x_0\oplus y_0=0\oplus0=0 \\ x·y= x^*\times y*= [x\times y]_原= [x\times y]_补=0,001\ 010\ 011\ 001=(665)_{10}\\ 运算过程如下: [2x]=[2x]=1,011 010x0=0y0=0z0=x0y0=00=0xy=x×y=[x×y]=[x×y]=0,001 010 011 001=(665)10运算过程如下:
原码一位乘:
在这里插入图片描述
原码两位乘:
在这里插入图片描述
结果同一位乘, x ⋅ y = 0 , 001   010   011   001 结果同一位乘,x·y=0,001\ 010\ 011\ 001 结果同一位乘,xy=0,001 010 011 001
补码一位乘:
在这里插入图片描述
补码两位乘:
在这里插入图片描述
结果同补码一位乘, x ⋅ y = 0 , 001   010   011   001 结果同补码一位乘,x·y= 0,001\ 010\ 011\ 001 结果同补码一位乘,xy=0,001 010 011 001

( 4 ) x = 0.110   11 , y = − 0.111   01 (4)x=0.110\ 11,y=-0.111\ 01 (4)x=0.110 11y=0.111 01
x ∗ = [ x ] 原 = [ x ] 补 = 0.110   11 x^*= [x]原= [x]补=0.110\ 11 x=[x]=[x]=0.110 11
[ y ] 原 = 1.111   01 , y ∗ = 0.111   01 [y]原=1.111\ 01,y^*=0.111\ 01 [y]=1.111 01y=0.111 01
[ y ] 补 = 1.000   11 [y]补=1.000\ 11 [y]=1.000 11
[ − x ∗ ] 补 = [ − x ] 补 = 1.001   01 [-x^*]_补=[-x]_补=1.001\ 01 [x]=[x]=1.001 01
2 x ∗ = [ 2 x ] 补 = 01.101   10 2x^*=[2x]_补=01.101\ 10 2x=[2x]=01.101 10
[ − 2 x ∗ ] 补 = [ − 2 x ] 补 = 10.010   10 [-2x^*]_补=[-2x]_补=10.010\ 10 [2x]=[2x]=10.010 10
x 0 = 0 , y 0 = 1 , z 0 = x 0 ⊕ y 0 = 0 ⊕ 1 = 1 x_0=0,y_0=1,z_0=x_0\oplus y_0=0\oplus 1=1 x0=0y0=1z0=x0y0=01=1
x ∗ × y ∗ = 0.110   000   111   1 x^*\times y^*=0.110\ 000\ 111\ 1 x×y=0.110 000 111 1
[ x × y ] 原 = 1.110   000   111   1 [x\times y]_原=1.110\ 000\ 111\ 1 [x×y]=1.110 000 111 1
[ x × y ] 补 = 1.001   111   000   10 [x\times y]_补=1.001\ 111\ 000\ 10 [x×y]=1.001 111 000 10
x ⋅ y = − 0.110   000   111   1 x·y= -0.110\ 000\ 111\ 1 xy=0.110 000 111 1
运算过程如下 : 运算过程如下: 运算过程如下:
原码一位乘:
在这里插入图片描述
原码两位乘:
在这里插入图片描述
结果同一位乘, x ⋅ y = − 0.110   000   111   1 结果同一位乘,x·y=-0.110\ 000\ 111\ 1 结果同一位乘,xy=0.110 000 111 1
补码一位乘:
在这里插入图片描述
补码两位乘:
在这里插入图片描述
结果同补码一位乘, x ⋅ y = − 0.110   000   111   10 结果同补码一位乘,x·y=-0.110\ 000\ 111\ 10 结果同补码一位乘,xy=0.110 000 111 10

21.用原码加减交替法和补码加减交替法计算 x ÷ y x\div y x÷y

(1)x=0.100111,y=0.101011;
(2)x=-0.10101,y=0.11011;
(3)x=0.10100, y=-0.10001;
(4)x=13/32, y=-27/32。
答:
( 1 ) x ∗ = [ x ] 原 = [ x ] 补 = x = 0.100   111 y ∗ = [ y ] 原 = [ y ] 补 = y = 0.101   011 (1)x^*=[x]_原=[x]_补=x=0.100\ 111\\ y^*=[y]_原=[y]_补=y=0.101\ 011 (1)x=[x]=[x]=x=0.100 111y=[y]=[y]=y=0.101 011
[ − y ∗ ] 补 = [ − y ] 补 = 1.010   101 [-y^*]_补=[-y]_补=1.010\ 101 [y]=[y]=1.010 101
q 0 = x 0 ⊕ y 0 = 0 ⊕ 0 = 0 x ÷ y = x ∗ ÷ y ∗ = [ x ÷ y ] 原 = 0.111   010 r ∗ = 0.000   010 × 2 − 6 = 0.000   000   000   010 计算过程如下 : q_0=x_0\oplus y_0=0 \oplus 0=0\\ x\div y=x^*\div y^*=[x\div y]_原=0.111\ 010\\ r^*=0.000\ 010\times2^{-6}=0.000\ 000\ 000\ 010\\ 计算过程如下: q0=x0y0=00=0x÷y=x÷y=[x÷y]=0.111 010r=0.000 010×26=0.000 000 000 010计算过程如下:
原码加减交替除法:
在这里插入图片描述

补码加减交替除法:
在这里插入图片描述

注 : 恒置 1 引入误差。 x ÷ y = [ x ÷ y ] 补 = 0.111   011 注:恒置1引入误差。\\ x\div y=[x\div y]_补= 0.111\ 011 :恒置1引入误差。x÷y=[x÷y]=0.111 011
[ r ] 补 = 0.000   010 , r = r ∗ = 0.000   000   000   010 [r]_补=0.000\ 010,r=r^*=0.000\ 000\ 000\ 010 [r]=0.000 010r=r=0.000 000 000 010

( 2 ) x = − 0.101   01 , y = 0.110   11 (2)x=-0.101 \ 01,y=0.110\ 11 (2)x=0.101 01y=0.110 11
[ x ] 原 = 1.101   01 x ∗ = 0.101   01 y ∗ = [ y ] 原 = [ y ] 补 = y = 0.110   11 [x]_原=1.101\ 01 \\ x^*=0.101\ 01\\ y^*=[y]_原=[y]_补=y=0.110\ 11 [x]=1.101 01x=0.101 01y=[y]=[y]=y=0.110 11
[ − y ∗ ] 补 = [ − y ] 补 = 1.001   01 [-y^*]_补=[-y]_补=1.001\ 01 [y]=[y]=1.001 01
[ x ] 补 = 1.010   11 q 0 = x 0 ⊕ y 0 = 1 ⊕ 0 = 1 x ∗ ÷ y ∗ = 0.110   00 [x]_补=1.010\ 11\\ q_0=x_0\oplus y_0=1\oplus 0=1 \\ x^*\div y^*= 0.110\ 00 [x]=1.010 11q0=x0y0=10=1x÷y=0.110 00
[ x ÷ y ] 原 = 1.110   00 x ÷ y = − 0.110   00 r ∗ = 0.110   00 × 2 − 5 = 0.000   001   100   0 计算过程如下 : [x\div y]_原=1.110\ 00 \\ x\div y=-0.110\ 00 \\ r^*=0.110\ 00\times 2^{-5}=0.000\ 001\ 100\ 0\\ 计算过程如下: [x÷y]=1.110 00x÷y=0.110 00r=0.110 00×25=0.000 001 100 0计算过程如下:
原码加减交替除法:
在这里插入图片描述
在这里插入图片描述

注 : 恒置 1 引入误差。 注:恒置1引入误差。 :恒置1引入误差。
[ r ] 补 = 1.010   00 , r = − 0.000   001   100   0 [r]_补=1.010\ 00, r=-0.000\ 001\ 100\ 0 [r]=1.010 00r=0.000 001 100 0
[ x ÷ y ] 补 = 1.001   11 , x ÷ y = − 0.110   01 [x\div y]_补=1.001\ 11,x\div y= -0.110\ 01 [x÷y]=1.001 11x÷y=0.110 01

( 3 ) x = 0.101   00 , y = − 0.100   01 x ∗ = [ x ] 原 = [ x ] 补 = x = 0.101   00 (3)x=0.101\ 00,y=-0.100\ 01\\ x^*=[x]_原=[x]_补=x=0.101\ 00 (3)x=0.101 00y=0.100 01x=[x]=[x]=x=0.101 00
[ y ] 原 = 1.100   01 y ∗ = 0.100   01 [y]_原=1.100\ 01 \\ y^*=0.100\ 01 [y]=1.100 01y=0.100 01
[ − y ∗ ] 补 = 1.011   11 [-y^*]_补=1.011\ 11 [y]=1.011 11
[ y ] 补 = 1.011   11 [y]_补=1.011\ 11 [y]=1.011 11
[ − y ] 补 = 0.100   01 q 0 = x 0 ⊕ y 0 = 0 ⊕ 1 = 1 x ∗ ÷ y ∗ = 1.001   01 ——溢出 [-y]_补=0.100\ 01\\ q_0=x_0\oplus y_0=0\oplus 1=1 \\ x^*\div y^*= 1.001\ 01 —— 溢出 [y]=0.100 01q0=x0y0=01=1x÷y=1.001 01——溢出
[ x ÷ y ] 原 : 无定义 x ÷ y = − 1.001   01 r ∗ = 0.010   11 × 2 − 5 = 0.000   000   101   1 计算过程如下 : [x\div y]_原:无定义 \\ x\div y=-1.001\ 01 \\ r^*=0.010\ 11\times 2^{-5}=0.000\ 000\ 101\ 1\\ 计算过程如下: [x÷y]:无定义x÷y=1.001 01r=0.010 11×25=0.000 000 101 1计算过程如下:
原码加减交替除法:
在这里插入图片描述

注:溢出,可停止运算,转溢出处理。
注:当 x ∗ > y ∗ x^*>y^* x>y时产生溢出,这种情况在第一步运算后判断r的正负时就可发现。此时数值位占领小数点左边的1位,原码无定义,但算法本身仍可正常运行。

补码加减交替除法:
在这里插入图片描述

注:由于本题中 x ∗ > y ∗ x^*>y^* x>y,有溢出。除法运算时一般在运算前判断是否 x ∗ > y ∗ x^*>y^* x>y,如果该条件成立则停止运算,转溢出处理。但此算法本身在溢出情况下仍可正常运行,此时数值位占领小数点左边的1位,商需设双符号位(变形补码),以判溢出。采用这种方法时运算前可不判溢出,直接进行运算,运算完后再判溢出。

( 4 ) x = 13 / 32 = ( 0.011   01 ) 2 y = − 27 / 32 = ( − 0.110   11 ) 2 x ∗ = [ x ] 原 = [ x ] 补 = x = 0.011   01 (4)x=13/32=(0.011\ 01)_2\\ y=-27/32=(-0.110\ 11)_2 \\ x^*= [x]_原= [x]_补=x=0.011\ 01 (4)x=13/32=(0.011 01)2y=27/32=(0.110 11)2x=[x]=[x]=x=0.011 01
[ y ] 原 = 1.110   11 y ∗ = 0.110   11 [y]_原=1.110\ 11 \\ y^* =0.110\ 11 [y]=1.110 11y=0.110 11
[ − y ∗ ] 补 = 1.001   01 [-y^*]_补=1.001\ 01 [y]=1.001 01
[ y ] 补 = 1.001   01 [y]_补=1.001\ 01 [y]=1.001 01
[ − y ] 补 = 0.110   11 q 0 = x 0 ⊕ y 0 = 0 ⊕ 1 = 1 x ∗ ÷ y ∗ = 0.011   11 [-y]_补=0.110\ 11\\ q_0=x_0\oplus y_0=0\oplus1=1 \\ x^*\div y^*= 0.011\ 11 [y]=0.110 11q0=x0y0=01=1x÷y=0.011 11
[ x ÷ y ] 原 = 1.011   11 x ÷ y = ( − 0.011   11 ) 2 = − 15 / 32 r ∗ = 0.010   11 × 2 − 5 = 0.000   000   101   1 [x\div y]_原=1.011\ 11\\ x\div y=(-0.011\ 11)_2= -15/32 \\ r^*=0.010\ 11\times2^{-5}=0.000\ 000\ 101\ 1 [x÷y]=1.011 11x÷y=(0.011 11)2=15/32r=0.010 11×25=0.000 000 101 1
原码加减交替除法:
在这里插入图片描述

补码加减交替除法:
在这里插入图片描述

[ r ] 补 = 0.010   11 , r = r ∗ = 0.000   000   101   1 [r]_补=0.010\ 11,r=r^*=0.000\ 000\ 101\ 1 [r]=0.010 11r=r=0.000 000 101 1
[ x ÷ y ] 补 = 1.100   01 , x ÷ y = ( − 0.011   11 ) 2 = − 15 / 32 [x\div y]_补=1.100\ 01,x\div y=(-0.011\ 11)_2=-15/32 [x÷y]=1.100 01x÷y=(0.011 11)2=15/32

22.设机器字长为16位(含1位符号位),若一次移位需 1 μ s 1\mu s 1μs,一次加法需 1 μ s 1\mu s 1μs,试问原码一位乘、补码一位乘、原码加减交替除和补码加减交替除法最多各需多少时间?

答:
原码一位乘最多需时 = 1 μ s × 15 ( 加 ) + 1 μ s × 15 ( 移位 ) = 30 μ s 补码一位乘最多需时 = 1 μ s × 16 + 1 μ s × 15 = 31 μ s 原码加减交替除最多需时 = 1 μ s × ( 16 + 1 ) + 1 μ s × 15 = 32 μ s 补码加减交替除最多需时 = 1 μ s × ( 16 + 1 ) + 1 μ s × 15 = 32 μ s 原码一位乘最多需时=1\mu s\times 15(加)+1\mu s\times 15(移位)=30\mu s\\ 补码一位乘最多需时=1\mu s\times 16+1\mu s\times 15=31\mu s\\ 原码加减交替除最多需时=1\mu s\times (16+1)+1\mu s\times 15=32\mu s\\ 补码加减交替除最多需时=1\mu s\times (16+1)+1\mu s\times 15=32\mu s 原码一位乘最多需时=1μs×15()+1μs×15(移位)=30μs补码一位乘最多需时=1μs×16+1μs×15=31μs原码加减交替除最多需时=1μs×(16+1)+1μs×15=32μs补码加减交替除最多需时=1μs×(16+1)+1μs×15=32μs

23.画出实现 Booth算法的运算器框图。

要求如下:
(1) 寄存器和全加器均用方框表示,指出寄存器和全加器的位数.
(2)说明加和移位的次数。
(3)详细画出最低位全加器的输入电路.
(4)描述 Booth算法重复加和移位的过程。
答:
(1)实现补码Booth算法的运算器框图如下图所示。图中全加器和寄存器均为n+2位,其中A寄存器存放部分积,含两位符号位,初态为“0”;X寄存器存放被乘数的补码,含两位符号位;Q寄存器存放乘数的补码,含1位符号位,最末位为附加位,初态为“0”。最终乘积的高位在寄存器A中,乘积的低位在Q寄存器中。计数器C用来控制移位次数,判断乘法是否结束。 G M G_M GM为乘法标记。
在这里插入图片描述

(2)Booth算法共做n次移位,最多做n+1次加法。
(3)最低位全加器的输入电路如下图所示。
在这里插入图片描述
(4)加的过程受Q寄存器末两位控制,当它们同时为0(记做 Q n ‾   Q n + 1 ‾ \overline {Q_n} \ \overline{Q_{n+1}} Qn Qn+1)或同时为1(记做 Q n Q n + 1 Q_n Q_{n+1} QnQn+1)时,部分积(在A中)不变;当末两位为01(记做 Q n ‾ Q n + 1 \overline {Q_n} Q_{n+1} QnQn+1)时,部分积加上被乘数(记做A+X);
当末两位为10(记做 Q n Q n + 1 ‾ Q_n \overline {Q_{n+1}} QnQn+1)时,部分积减去被乘数,即与求补后的被乘数相加(记做 A + X ‾ + 1 A+\overline X+1 A+X+1)。
则Booth 算法的重复加过程可描述为:
( Q n ‾   Q n + 1 ‾ + Q n Q n + 1 ) A + Q n ‾ Q n + 1 ( A + X ) + Q n Q n + 1 ‾ ( A + X ‾ + 1 ) → A (\overline {Q_n} \ \overline{Q_{n+1}}+Q_n Q_{n+1})A+\overline {Q_n} Q_{n+1}(A+X)+Q_n \overline {Q_{n+1}}(A+\overline X+1)→A (Qn Qn+1+QnQn+1)A+QnQn+1(A+X)+QnQn+1(A+X+1)A
移位时A、Q两个寄存器串接(A//Q),一起右移一位(算术移位),记L(A//Q)→R(A//Q)。

24.画出实现补码加减交替法的运算器框图。

要求如下:
(1)寄存器和全加器均用方框表示,指出寄存器和全加器的位数。
(2)说明加和移位的次数。
(3)详细画出第5位(设n为最低位)全加器的输入电路。
(4)画出上商的输入电路。
(5)描述商符的形成过程。
答:
(1)补码加减交替法的运算框图:图中全加器n+1位,寄存器A存放被除数,n+1位(含一位符号位);寄存器X存放除数,n+1位(含一位符号位);寄存器Q存放商,n+1位(含一位符号位),初态为0.
在这里插入图片描述
(2)加操作: Q n ( A + X ‾ + 1 ) + Q n ‾ ( A + X ) → A Q_n(A+\overline X+1)+\overline{Q_n}(A+X)→A Qn(A+X+1)+Qn(A+X)A
(3)第5位全加器的输入电路:
在这里插入图片描述
(4)上商的输入电路:
在这里插入图片描述

(5)商符的形成: A 0 ⊕ X 0 ‾ → Q n \overline{A_0\oplus X_0}→Q_n A0X0Qn

25.对于尾数为40位的浮点数(不包括符号位在内),若采用不同的机器数表示,试问当尾数左规或右规时,最多移位次数各为多少?

答:
对于尾数为40位的浮点数,若采用原码表示,当尾数左规时,最多移位39次;反码表示时情况同原码;若采用补码表示,当尾数左规时,正数最多移位39次,同原码;负数最多移位40次。当尾数右规时,不论采用何种码制,均只需右移1次。

26.按机器补码浮点运算步骤计算 [ x ± y ] 补 [x\pm y]_补 [x±y]

( 1 ) x = 2 − 011 × 0.101   100 , y = 2 − 010 × ( − 0.011   100 ) ; ( 2 ) x = 2 − 011 × ( − 0.100   010 ) , y = 2 − 010 × ( − 0.011   111 ) ; ( 3 ) x = 2 101 × ( − 0.100   101 ) , y = 2 100 × ( − 0.001   111 ) 。 (1)x=2^{-011}\times 0.101\ 100, y=2^{-010}\times (-0.011\ 100);\\ (2) x=2^{-011}\times (-0.100\ 010),y=2^{-010}\times (-0.011\ 111);\\ (3)x=2^{101}\times (-0.100\ 101),y=2^{100}\times (-0.001\ 111)。 (1)x=2011×0.101 100y=2010×(0.011 100);(2)x=2011×(0.100 010),y=2010×(0.011 111);(3)x=2101×(0.100 101)y=2100×(0.001 111)
答:
先将 x 、 y 转换成机器数形式 : ( 1 ) [ x ] 补 = 1 , 101 ; 0.101   100 先将x、y转换成机器数形式:\\ (1)[x]_补=1,101;0.101\ 100 先将xy转换成机器数形式:(1)[x]=1,1010.101 100
[ y ] 补 = 1 , 110 ; 1.100   100 [y]_补=1,110;1.100\ 100 [y]=1,1101.100 100
注:为简单起见,源操作数可直接写成浮点格式,不必规格化。
1 ) 对阶 : 1)对阶: 1)对阶:
[ Δ E ] 补 = [ E x ] 补 + [ − E y ] 补 = 11 , 101 + 00 , 010 = 11 , 111 [\Delta E]_补=[E_x]_补+[-E_y]_补=11,101+00,010=11,111 [ΔE]=[Ex]+[Ey]=11,101+00,010=11,111
[ Δ E ] 补 < 0 ,应 E x 向 E y 对齐,则 : [\Delta E]_补<0,应E_x向E_y对齐,则: [ΔE]<0,应ExEy对齐,则:
[ E x ] 补 + 1 = 11 , 101 + 00 , 001 = 11 , 110 [E_x]_补+1=11,101+00,001=11,110 [Ex]+1=11,101+00,001=11,110
[ Δ E ] 补 + 1 = 11 , 111 + 00 , 001 = 00 , 000 = 0 [\Delta E]_补+1=11,111+00,001=00,000=0 [ΔE]+1=11,111+00,001=00,000=0
至此, E x = E y ,对毕。 至此, E_x=E_y,对毕。 至此,Ex=Ey,对毕。
[ x ] 补 = 1 , 110 ; 0.010   110 [x]_补=1,110;0.010\ 110 [x]=1,1100.010 110
2 ) 尾数运算 : 2)尾数运算: 2)尾数运算:
[ M x ] 补 + [ M y ] 补 = [M_x]_补+[M_y]_补= [Mx]+[My]=
00.010   110 + 11.100   100 11.111   010 \begin{array}{c} & 00.010\ 110 \\ + &11.100\ 100\\ \hline & 11.111\ 010 \end{array} +00.010 11011.100 10011.111 010
[ M x ] 补 + [ − M y ] 补 = [M_x]_补+[-M_y]_补= [Mx]+[My]=
00.010   110 + 00.011   100 00.110   010 \begin{array}{c} & 00.010\ 110 \\ + &00.011\ 100\\ \hline & 00.110\ 010 \end{array} +00.010 11000.011 10000.110 010
3 ) 结果规格化 : 3)结果规格化: 3)结果规格化:
[ x + y ] 补 = 11 , 110 ; 11.111   010 = 11 , 011 ; 11.010   000 [x+y]_补=11,110;11.111\ 010 =11,011; 11.010\ 000 [x+y]=11,11011.111 010=11,01111.010 000
( 左规 3 次,阶码减 3 ,尾数左移 3 位 ) (左规3次,阶码减3,尾数左移3位) (左规3次,阶码减3,尾数左移3)
[ x − y ] 补 = 11 , 110 ; 00.110   010 已是规格化数。 4 ) 舍入 : 无 5 ) 溢出 : 无 则 : x + y = 2 − 101 × ( − 0.110   000 ) x − y = 2 − 010 × 0.110   010 [x-y]_补=11,110;00.110\ 010 已是规格化数。\\ 4)舍入:无\\ 5)溢出:无\\ 则:x+y=2^{-101}\times(-0.110\ 000)\\ x-y =2^{-010}\times 0.110\ 010 [xy]=11,11000.110 010已是规格化数。4)舍入:5)溢出::x+y=2101×(0.110 000)xy=2010×0.110 010

( 2 ) x = 2 − 011 × ( − 0.100010 ) y = 2 − 010 × ( − 0.011111 ) (2)x=2^{-011}\times (-0.100010)\\ y=2^{-010}\times (-0.011111) (2)x=2011×(0.100010)y=2010×(0.011111)
[ x ] 补 = 1 , 101 ; 1.011   110 [x]_补=1,101;1.011\ 110 [x]=1,1011.011 110
[ y ] 补 = 1 , 110 ; 1.100   001 [y]_补=1,110;1.100\ 001 [y]=1,1101.100 001
1 ) 对阶 : 过程同 1 ) ,则 1)对阶:\\ 过程同1),则 1)对阶:过程同1),则
[ x ] 补 = 1 , 110 ; 1.101   111 2 ) 尾数运算 : [x]_补=1,110;1.101\ 111\\ 2)尾数运算: [x]=1,1101.101 1112)尾数运算:
[ M x ] 补 + [ M y ] 补 = [M_x]_补+[M_y]_补= [Mx]+[My]=
11.101   111 + 11.100   001 11.010   000 \begin{array}{c} & 11.101\ 111 \\ + &11.100\ 001\\ \hline &11.010\ 000 \end{array} +11.101 11111.100 00111.010 000
[ M x ] 补 + [ − M y ] 补 = [M_x]_补+[-M_y]_补= [Mx]+[My]=
11.101   111 + 00.011   111 00.001   110 \begin{array}{c} &11.101\ 111 \\ + &00.011\ 111\\ \hline & 00.001\ 110 \end{array} +11.101 11100.011 11100.001 110
3 ) 结果规格化 : 3)结果规格化: 3)结果规格化:
[ x + y ] 补 = 11 , 110 ; 11.010   000 已是规格化数。 [x+y]_补=11,110;11.010\ 000已是规格化数。 [x+y]=11,11011.010 000已是规格化数。
[ x − y ] 补 = 11 , 110 ; 00.001   110 = 11 , 100 ; 00.111   000 [x-y]_补=11,110;00.001\ 110=11,100; 00.111\ 000 [xy]=11,11000.001 110=11,100;00.111 000
( 左规 2 次,阶码减 2 ,尾数左移 2 位 ) 4 ) 舍入 : 无 5 ) 溢出 : 无 则 : x + y = 2 − 010 × ( − 0.110   000 ) x − y = 2 − 100 × 0.111   000 (左规2次,阶码减2,尾数左移2位)\\ 4)舍入:无\\ 5)溢出:无\\ 则:x+y=2^{-010}\times(-0.110\ 000)\\ x-y =2^{-100}\times 0.111\ 000 (左规2次,阶码减2,尾数左移2)4)舍入:5)溢出::x+y=2010×(0.110 000)xy=2100×0.111 000

( 3 ) x = 2 101 × ( − 0100   101 ) y = 2 100 × ( − 0.001   111 ) (3)x=2^{101}\times (-0100\ 101)\\ y=2^{100}\times (-0.001\ 111) (3)x=2101×(0100 101)y=2100×(0.001 111)
[ x ] 补 = 0 , 101 ; 1.011   011 [x]_补=0,101;1.011\ 011 [x]=0,1011.011 011
[ y ] 补 = 0 , 100 ; 1.110   001 [y]_补=0,100;1.110\ 001 [y]=0,1001.110 001
1 ) 对阶 : 1)对阶: 1)对阶:
[ Δ E ] 补 = [ E x ] 补 + [ − E y ] 补 = 00 , 101 + 11 , 100 = 00 , 001 [\Delta E]_补=[E_x]_补+[-E_y]_补=00,101+11,100=00,001 [ΔE]=[Ex]+[Ey]=00,101+11,100=00,001
[ Δ E ] 补 > 0 ,应 E y 向 E x 对齐,则 : [\Delta E]_补>0,应E_y向E_x对齐,则: [ΔE]>0,应EyEx对齐,则:
[ E y ] 补 + 1 = 00 , 100 + 00 , 001 = 00 , 101 [E_y]_补+1=00,100+00,001=00,101 [Ey]+1=00,100+00,001=00,101
[ E ] 补 + [ − 1 ] 补 = 00 , 001 + 11 , 111 = 00 , 000 = 0 至此, E y = E x ,对毕。 [E]_补+[-1]_补=00,001+11,111=00,000=0\\ 至此, E_y=E_x,对毕。 [E]+[1]=00,001+11,111=00,000=0至此,Ey=Ex,对毕。
[ y ] 补 = 0 , 101 ; 1.111   000 ( 1 ) 2 ) 尾数运算 : [y]补=0,101;1.111\ 000 (1)\\ 2)尾数运算: [y]=0,1011.111 000(1)2)尾数运算:
[ M x ] 补 + [ M y ] 补 = [M_x]_补+[M_y]_补= [Mx]+[My]=
11.011   011 + 11.111   000 ( 1 ) 11.010   011 ( 1 ) \begin{array}{c} &11.011\ 011 \\ + &11.111\ 000&(1)\\ \hline & 11.010\ 011&(1) \end{array} +11.011 01111.111 00011.010 011(1)(1)
[ M x ] 补 + [ − M y ] 补 = [M_x]_补+[-M_y]_补= [Mx]+[My]=
11.011   011 + 00.000   111 ( 1 ) 11.100   010 ( 1 ) \begin{array}{c} &11.011\ 011 \\ + &00.000\ 111& (1)\\ \hline & 11.100\ 010&(1) \end{array} +11.011 01100.000 11111.100 010(1)(1)
3 ) 结果规格化 : 3)结果规格化: 3)结果规格化:
[ x + y ] 补 = 00 , 101 ; 11.010   011 ( 1 ) 已是规格化数。 [x+y]_补=00,101;11.010\ 011 (1)已是规格化数。 [x+y]=00,10111.010 011(1)已是规格化数。
[ x − y ] 补 = 00 , 101 ; 11.100   010 ( 1 ) = 00 , 100 ; 11.000   101 ( 左规 1 次,阶码减 1 ,尾数左移 1 位 ) 4 ) 舍入 : [x-y]_补=00,101;11.100\ 010 (1)=00,100; 11.000\ 101\\ (左规1次,阶码减1,尾数左移1位)\\ 4)舍入: [xy]=00,10111.100 010(1)=00,100;11.000 101(左规1次,阶码减1,尾数左移1)4)舍入:
[ x + y ] 补 = 00 , 101 ; 11.010   011 ( 舍 ) [x+y]_补=00,101;11.010\ 011(舍) [x+y]=00,10111.010 011()
[ x − y ] 补 不变。 [x-y]_补不变。 [xy]不变。
[ x − y ] 补 = 00 , 100 ; 11.000   101 [x-y]_补=00,100;11.000\ 101 [xy]=00,10011.000 101
5 ) 溢出 : 无 则 : x + y = 2 101 × ( − 0.101   101 ) x − y = 2 100 × ( − 0.111   011 ) 5)溢出:无\\ 则:x+y=2^{101}\times(-0.101\ 101)\\ x-y =2^{100}\times(-0.111\ 011) 5)溢出::x+y=2101×(0.101 101)xy=2100×(0.111 011)

27.假设阶码取3位,尾数取6位(均不包括符号位),计算下列各题。

( 1 ) [ 2 5 × ( 11 / 16 ) ] + [ 2 4 × ( − 9 / 16 ) ] ( 2 ) [ 2 − 3 × ( 13 / 16 ) ] − [ 2 − 4 × ( − 5 / 8 ) ] ( 3 ) [ 2 3 × ( 13 / 16 ) ] × [ 2 4 × ( − 9 / 16 ) ] ( 4 ) [ 2 6 × ( − 11 / 16 ) ] ÷ [ 2 3 × ( − 15 / 16 ) ] ( 5 ) [ 2 3 × ( − 1 ) ] × [ 2 − 2 × 57 / 64 ] ( 6 ) [ 2 − 6 × ( − 1 ) ] ÷ [ 2 7 × ( − 1 / 2 ) ] ( 7 ) 3.3125 + 6.125 ( 8 ) 1475 − 24375 (1)[2^5\times (11/16)]+[2^4\times (-9/16)]\\ (2)[2^{-3}\times (13/16)]-[2^{-4}\times (-5/8)]\\ (3)[2^3\times (13/16)]\times [2^4\times (-9/16)]\\ (4)[2^6\times (-11/16)]\div[2^3\times (-15/16)]\\ (5)[2^3\times (-1)]\times [2^{-2}\times 57/64]\\ (6)[2^{-6}\times (-1)]\div[2^7\times (-1/2)]\\ (7)3.3125+6.125\\ (8)1475-24375 (1)[25×(11/16)]+[24×(9/16)](2)[23×(13/16)][24×(5/8)](3)[23×(13/16)]×[24×(9/16)](4)[26×(11/16)]÷[23×(15/16)](5)[23×(1)]×[22×57/64](6)[26×(1)]÷[27×(1/2)](7)3.3125+6.125(8)147524375
答:
设机器数采用阶补尾补形式 : ( 1 ) x = 2 5 × ( 11 / 16 ) = 2 101 × 0.10   1100 y = 2 4 × ( − 9 / 16 ) = 2 100 × ( − 0.10   0100 ) 则 : [ x ] 阶补尾补 = 00 , 101 ; 00.10   1100 设机器数采用阶补尾补形式:\\ (1)x=2^5\times (11/16)=2^{101}\times 0.10\ 1100\\ y= 2^4\times (-9/16)=2^{100}\times (-0.10\ 0100)\\ 则:[x]_{阶补尾补}=00,101;00.10\ 1100 设机器数采用阶补尾补形式:(1)x=25×(11/16)=2101×0.10 1100y=24×(9/16)=2100×(0.10 0100):[x]阶补尾补=00,10100.10 1100
[ y ] 阶补尾补 = 00 , 100 ; 11.01   1100 1 ) 对阶 : [y]_{阶补尾补}=00,100;11.01\ 1100\\ 1)对阶: [y]阶补尾补=00,10011.01 11001)对阶:
[ Δ E ] 补 = [ E x ] 补 + [ − E y ] 补 = 00 , 101 + 11 , 100 = 00 , 001 [\Delta E]_补=[E_x]_补+[-E_y]_补=00,101+11,100=00,001 [ΔE]=[Ex]+[Ey]=00,101+11,100=00,001
[ Δ E ] 补 > 0 ,应 E y 向 E x 对齐,则 : [\Delta E]_补>0,应E_y向E_x对齐,则: [ΔE]>0,应EyEx对齐,则:
[ E y ] 补 + 1 = 00 , 100 + 00 , 001 = 00 , 101 [E_y]_补+1=00,100+00,001=00,101 [Ey]+1=00,100+00,001=00,101
[ Δ E ] 补 + [ − 1 ] 补 = 00 , 001 + 11 , 111 = 0 [\Delta E]_补+[-1]_补=00,001+11,111=0 [ΔE]+[1]=00,001+11,111=0
至此, E y = E x ,对毕。 至此,E_y=E_x,对毕。 至此,Ey=Ex,对毕。
[ y ] 补 = 00 , 101 ; 11.10   1110 2 ) 尾数运算 : [y]_补=00,101;11.10\ 1110\\ 2)尾数运算: [y]=00,10111.10 11102)尾数运算:
[ M x ] 补 + [ M y ] 补 = [M_x]_补+[M_y]_补= [Mx]+[My]=
00.10   1100 + 11.10   1110 00.01   1010 \begin{array}{c} &00.10\ 1100 \\ +&11.10\ 1110\\ \hline & 00.01\ 1010 \\ \end{array} +00.10 110011.10 111000.01 1010
3 ) 结果规格化 : 左规 1 位 3)结果规格化:左规1位 3)结果规格化:左规1
[ x + y ] 补 = 00 , 101 ; 00.011   010 = 00 , 100 ; 00.110   100 [x+y]_补=00,101;00.011\ 010=00,100;00.110\ 100 [x+y]=00,10100.011 010=00,10000.110 100
4 ) 舍入 : 不需舍入。 5 ) 溢出 : 无 则 : x + y = 2 100 × ( 0.110   100 ) = 2 4 × ( 13 / 16 ) 4)舍入:不需舍入。\\ 5)溢出:无\\ 则:x+y=2^{100}\times (0.110\ 100)=2^4\times (13/16) 4)舍入:不需舍入。5)溢出::x+y=2100×(0.110 100)=24×(13/16)

( 2 ) [ 2 − 3 × ( 13 / 16 ) ] − [ 2 − 4 × ( − 5 / 8 ) ] x = 2 − 3 × ( 13 / 16 ) = 2 − 011 × 0.110   100 y = 2 − 4 × ( − 5 / 8 ) = 2 − 100 × ( − 0.101   000 ) (2)[2^{-3}\times (13/16)]-[2^{-4}\times (-5/8)]\\ x=2^{-3}\times (13/16)=2^{-011}\times 0.110\ 100 \\ y= 2^{-4}\times (-5/8)=2^{-100}\times (-0.101\ 000) (2)[23×(13/16)][24×(5/8)]x=23×(13/16)=2011×0.110 100y=24×(5/8)=2100×(0.101 000)
[ x ] 阶补尾补 = 11 , 101 ; 00.110   100 [x]_{阶补尾补}=11,101;00.110\ 100 [x]阶补尾补=11,10100.110 100
[ y ] 阶补尾补 = 11 , 100 ; 11.011   000 1 ) 对阶 : [y]_{阶补尾补}=11,100;11.011\ 000\\ 1)对阶: [y]阶补尾补=11,10011.011 0001)对阶:
[ Δ E ] 补 = [ E x ] 补 + [ − E y ] 补 = 11 , 101 + 00 , 100 = 00 , 001 [\Delta E]_补=[E_x]_补+[-E_y]_补=11,101+00,100=00,001 [ΔE]=[Ex]+[Ey]=11,101+00,100=00,001
[ Δ E ] 补 > 0 ,应 E y 向 E x 对齐,则 : [\Delta E]_补>0,应E_y向E_x对齐,则: [ΔE]>0,应EyEx对齐,则:
[ E y ] 补 + 1 = 11 , 100 + 00 , 001 = 11 , 101 [E_y]补+1=11,100+00,001=11,101 [Ey]+1=11100+00001=11101
[ Δ E ] 补 + [ − 1 ] 补 = 00 , 001 + 11 , 111 = 0 至此, E y = E x ,对毕。 [ΔE]补+[-1]补=00,001+11,111=0\\ 至此, E_y=E_x,对毕。 [ΔE]+[1]=00001+11111=0至此,Ey=Ex,对毕。
[ y ] 补 = 11 , 101 ; 11.101100 2 ) 尾数运算 : [y]补=11,101;11.101100\\ 2)尾数运算: [y]=11,10111.1011002)尾数运算:
[ M x ] 补 + [ − M y ] 补 = [M_x]_补+[-M_y]_补= [Mx]+[My]=
00.110100 + 00.010100 01.001000 \begin{array}{c} &00.110100 \\ +&00.010100\\ \hline & 01.001000 \\ \end{array} +00.11010000.01010001.001000
3 ) 结果规格化 : 右规 3)结果规格化:右规 3)结果规格化:右规
[ x − y ] 补 = 11 , 101 ; 01.001   000 = 11 , 110 ; 00.100   100 4 ) 舍入 : 不需舍入。 5 ) 溢出 : 无 则 : x − y = 2 − 010 × ( 0.100   100 ) = 2 − 2 × ( 9 / 16 ) [x-y]_补=11,101;01.001\ 000=11,110;00.100\ 100\\ 4)舍入:不需舍入。\\ 5)溢出:无\\ 则:x-y=2^{-010}\times (0.100\ 100)=2^{-2}\times(9/16) [xy]=11,10101.001 000=11,11000.100 1004)舍入:不需舍入。5)溢出::xy=2010×(0.100 100)=22×(9/16)

( 3 ) [ 2 3 × ( 13 / 16 ) ] × [ 2 4 × ( − 9 / 16 ) ] x = 2 3 × ( 13 / 16 ) = 2 011 × ( 0.110   100 ) y = 2 4 × ( − 9 / 16 ) = 2 100 × ( − 0.100   100 ) (3)[2^3\times (13/16)]\times [2^4\times (-9/16)] \\ x=2^3\times (13/16)=2^{011}\times (0.110\ 100)\\ y=2^4\times (-9/16)=2^{100}\times (-0.100\ 100) (3)[23×(13/16)]×[24×(9/16)]x=23×(13/16)=2011×(0.110 100)y=24×(9/16)=2100×(0.100 100)
[ x ] 阶补尾补 = 00 , 011 ; 0.110   100 [x]_{阶补尾补}=00,011;0.110\ 100 [x]阶补尾补=00,0110.110 100
[ y ] 阶补尾补 = 00 , 100 ; 1.011   100 1 ) 阶码相加 : [y]_{阶补尾补}=00,100;1.011\ 100\\ 1)阶码相加: [y]阶补尾补=00,1001.011 1001)阶码相加:
[ E x ] 补 + [ E y ] 补 = 00 , 011 + 00 , 100 = 00 , 111 ( 无溢出 ) 2 ) 尾数相乘 : [E_x]_补+[E_y]_补=00,011+00,100=00,111(无溢出)\\ 2)尾数相乘: [Ex]+[Ey]=00,011+00,100=00,111(无溢出)2)尾数相乘:
补码两位乘比较法:
在这里插入图片描述
[ M x × M y ] 补 = 11.100   010 ( 110   000   00 ) 3 ) 结果规格化 : 左规 1 位。 [M_x\times M_y]_补=11.100\ 010(110\ 000\ 00)\\ 3)结果规格化:左规1位。 [Mx×My]=11.100 010(110 000 00)3)结果规格化:左规1位。
[ x × y ] 补 = 0 , 111 ; 1.100   010 ( 110   000   00 ) = 0 , 110 ; 1.000   101 ( 100   000   0 ) 4 ) 舍入 : 设采用 0 舍 1 入法,应舍 : [x\times y]_补=0,111;1.100\ 010(110\ 000\ 00) =0,110;1.000\ 101(100\ 000\ 0)\\ 4)舍入:设采用0舍1入法,应舍: [x×y]=0,1111.100 010(110 000 00)=0,1101.000 101(100 000 0)4)舍入:设采用01入法,应舍:
[ x × y ] 阶补尾补 = 0 , 110 ; 1.000   101 5 ) 溢出 : 无 x × y = 2110 × ( − 0.111   011 ) = 2 6 × ( − 59 / 64 ) [x\times y]_{阶补尾补}=0,110;1.000\ 101\\ 5)溢出:无\\ x\times y=2{110}\times (-0.111\ 011)=2^6\times (-59/64) [x×y]阶补尾补=0,1101.000 1015)溢出:x×y=2110×(0.111 011)=26×(59/64)

( 4 ) [ 2 6 × ( − 11 / 16 ) ] ÷ [ 2 3 × ( − 15 / 16 ) ] x = 2 6 × ( − 11 / 16 ) = 2 110 × ( − 0.101   100 ) y = 2 3 × ( − 15 / 16 ) = 2 011 × ( − 0.111   100 ) (4)[2^6\times (-11/16)]\div[2^3\times (-15/16)]\\ x=2^6\times (-11/16)=2^{110}\times (-0.101\ 100) \\ y=2^3\times (-15/16)=2^{011}\times (-0.111\ 100) (4)[26×(11/16)]÷[23×(15/16)]x=26×(11/16)=2110×(0.101 100)y=23×(15/16)=2011×(0.111 100)
[ x ] 阶补尾补 = 00 , 110 ; 1.010   100 [x]_{阶补尾补}=00,110;1.010\ 100 [x]阶补尾补=00,1101.010 100
[ y ] 阶补尾补 = 00 , 011 ; 1.000   100 1 ) 阶码相减 : [y]_{阶补尾补}=00,011;1.000\ 100\\ 1)阶码相减: [y]阶补尾补=00,0111.000 1001)阶码相减:
[ E x ] 补 + [ − E y ] 补 = 00 , 110 + 11 , 101 = 00 , 011 ( 无溢出 ) [E_x]_补+[-E_y]_补=00,110+11,101=00,011(无溢出) [Ex]+[Ey]=00,110+11,101=00,011(无溢出)
2 ) 尾数相除 : 2)尾数相除: 2)尾数相除:
补码加减交替除法
在这里插入图片描述

[ M x ÷ M y ] 补 = 0.101   111 , [ r ] 补 = 1.001   000 r = − 0.111   000 × 2 − 6 = − 0.000   000   111   000 [M_x\div M_y]_补= 0.101\ 111,[r]_补=1.001\ 000\\ r=-0.111\ 000\times2^{-6} =-0.000\ 000\ 111\ 000 [Mx÷My]=0.101 111[r]=1.001 000r=0.111 000×26=0.000 000 111 000

28.如何判断定点和浮点补码加减运算结果是否溢出,如何判断原码和补码的定点除法运算结果是否溢出?

答:
有三种判断定点补码加减运算溢出的办法:
(1)采用一位符号位,若两操作数符号相同(减法时减数需每位取反,末位加1),结果的符号又与原操作数符号不同,则为溢出。
(2)采用一位符号位,加法时最高位(符号位)的进位和次高位的进位异或结果为1时,即为溢出。
(3)采用双符号位,当结果的两个符号位不同时,即为溢出。此时最高位符号位代表真正的符号。

对于浮点补码加减运算要根据运算结果的阶码来判断是否溢出。当阶码大于最大正阶码时为溢出(即:阶码 [ j ] 补 = 01 , × × ⋅ ⋅ ⋅ × × [j]_补=01,\times \times ···\times \times [j]=01,××⋅⋅⋅××为上溢),此时需中断处理;当阶码小于最小负阶码时(即:阶码 [ j ] 补 = 10 , × × ⋅ ⋅ ⋅ × × [j]_补=10,\times \times ···\times \times [j]=10,××⋅⋅⋅××,按机器零处理),按机器零处理。

以小数为例,补码除法第一次即为商符,若商符与两操作数符号位异或结果不同,即为溢出。如果两操作数符号相同,第一次上商为1即为溢出;若两操作数符号不同,第一次上商若为0,即为溢出。
浮点数补码除法运算不能以尾数相除结果溢出为判断依据,因为尾数溢出可通过右规校正。仅当最后结果的浮点数阶码大于最大正阶码时,才为真正溢出。

29.设浮点数阶码取3位,尾数取6位(均不包括符号位),要求阶码用移码运算,尾数用补码运算,计算x·y,且结果保留1倍字长。

( 1 ) x = 2 − 100 × 0101101 , y = 2 − 011 × ( − 0110101 ) ; ( 2 ) x = 2 − 011 × ( − 0.100111 ) , y = 2 101 × ( − 0.101011 ) 。 (1)x=2^{-100}\times 0101101,y=2^{-011}\times (-0110101);\\ (2) x=2^{-011}\times (-0.100111),y=2^{101}\times (-0.101011)。 (1)x=2100×0101101y=2011×(0110101);(2)x=2011×(0.100111)y=2101×(0.101011)
答:
先将 x 、 y 转换成机器数形式 : ( 1 ) [ x ] 阶移尾补 = 0 , 100 ; 0.101   101 先将x、y转换成机器数形式:\\ (1)[x]_{阶移尾补}=0,100;0.101\ 101 先将xy转换成机器数形式:(1)[x]阶移尾补=0,100;0.101 101
[ y ] 阶移尾补 = 0 , 101 ; 1.001   011 1 ) 阶码相加 : [y]_{阶移尾补}=0,101;1.001\ 011\\ 1)阶码相加: [y]阶移尾补=0,101;1.001 0111)阶码相加:
[ E x ] 移 + [ E y ] 补 = 00 , 100 + 11 , 101 = 00 , 001 ( 无溢出 ) [E_x]_移+[E_y]_补=00,100+11,101=00,001(无溢出) [Ex]+[Ey]=00,100+11,101=00,001(无溢出)
2 ) 尾数相乘 : 2)尾数相乘: 2)尾数相乘:
算法一:补码两位乘比较法
在这里插入图片描述

[ M x × M y ] 补 = 1.011   010 ( 101   111   00 ) 3 ) 结果规格化 : 已是规格化数。 4 ) 舍入 : 设采用 0 舍 1 入法,应入 : [M_x\times M_y]_补=1.011\ 010(101\ 111\ 00)\\ 3)结果规格化:已是规格化数。\\ 4)舍入:设采用0舍1入法,应入: [Mx×My]=1.011 010(101 111 00)3)结果规格化:已是规格化数。4)舍入:设采用01入法,应入:
[ x × y ] 阶移尾补 = 0 , 001 ; 1.011   011 5 ) 溢出 : 无 x × y = 2 − 111 × ( − 0.100   101 ) [x\times y]_{阶移尾补}=0,001;1.011\ 011\\ 5)溢出:无\\ x\times y=2^{-111}\times (-0.100\ 101) [x×y]阶移尾补=0,0011.011 0115)溢出:x×y=2111×(0.100 101)

( 2 ) x = 2 − 011 × ( − 0.100   111 ) y = 2 101 × ( − 0.101   011 ) (2)x=2^{-011}\times (-0.100\ 111)\\ y=2^{101}\times (-0.101\ 011) (2)x=2011×(0.100 111)y=2101×(0.101 011)
[ x ] 阶移尾补 = 0 , 101 ; 1.011   001 [x]_{阶移尾补}=0,101;1.011\ 001 [x]阶移尾补=0,1011.011 001
[ y ] 阶移尾补 = 1 , 101 ; 1.010   101 1 ) 阶码相加 : [y]_{阶移尾补}=1,101;1.010\ 101\\ 1)阶码相加: [y]阶移尾补=1,1011.010 1011)阶码相加:
[ E x ] 移 + [ E y ] 补 = 00 , 101 + 00 , 101 = 01 , 010 ( 无溢出 ) [E_x]_移+[E_y]_补=00,101+00,101 =01,010(无溢出) [Ex]+[Ey]=00,101+00,101=01,010(无溢出)
2 ) 尾数相乘 : 2)尾数相乘: 2)尾数相乘:
算法一:补码两位乘比较法
在这里插入图片描述

[ M x × M y ] 补 = 0.011   010 ( 001   101   00 ) [M_x\times M_y]_补=0.011\ 010(001\ 101\ 00) [Mx×My]=0.011 010(001 101 00)
2 ) 尾数相乘 : 2)尾数相乘: 2)尾数相乘:
算法二:补码一位乘比较法
在这里插入图片描述

[ M x × M y ] 补 = 0.011   010 ( 001   101   0 ) [M_x\times M_y]_补=0.011\ 010(001\ 101\ 0) [Mx×My]=0.011 010(001 101 0)
3 ) 结果规格化 : 3)结果规格化: 3)结果规格化:
[ x × y ] 阶移尾补 = 1 , 010 ; 0.011   010 ( 001   101   00 ) = 1 , 001 ; . 0.110   100 ( 011   010   0 ) ( 左规 1 次,阶码减 1 ,尾数左移 1 位 ) 4 ) 舍入 : 设采用 0 舍 1 入法,应舍 : [x\times y]_{阶移尾补}=1,010;0.011\ 010(001\ 101\ 00)=1,001;.0.110\ 100(011\ 010\ 0)\\ (左规1次,阶码减1,尾数左移1位)\\ 4)舍入:设采用0舍1入法,应舍: [x×y]阶移尾补=1,0100.011 010(001 101 00)=1,001.0.110 100(011 010 0)(左规1次,阶码减1,尾数左移1)4)舍入:设采用01入法,应舍:
[ x × y ] 阶移尾补 = 1 , 001 ; 0.110   100 5 ) 溢出 : 无 x × y = 2 001 × 0.110   100 [x\times y]_{阶移尾补}=1,001;0.110\ 100\\ 5)溢出:无\\ x\times y=2^{001}\times 0.110\ 100 [x×y]阶移尾补=1,0010.110 1005)溢出:x×y=2001×0.110 100
注意:采用阶移尾补格式是指:参加运算的数是阶移尾补格式,用阶移尾补算法计算,运算结果是阶移尾补格式。

30.机器数格式同上题,要求阶码用移码运算,尾数用补码运算,计算 x ÷ y x\div y x÷y。(注:改用阶移尾原格式作。)

( 1 ) x = 2 101 × 0.100111 , y = 2 011 × ( − 0.101011 ) ; ( 2 ) x = 2 110 × ( − 0.101101 ) , y = 2 011 × ( − 0.111100 ) 。 (1)x=2^{101}\times 0.100111, y=2^{011}\times (-0.101011);\\ (2)x=2^{110}\times (-0.101101), y=2^{011}\times (-0.111100)。 (1)x=2101×0.100111y=2011×(0.101011);(2)x=2110×(0.101101)y=2011×(0.111100)
答:
先将 x 、 y 转换成机器数形式 : ( 1 ) [ x ] 阶移尾原 = 1 , 101 ; 0.100   111 先将x、y转换成机器数形式:\\ (1)[x]_{阶移尾原}=1,101;0.100\ 111 先将xy转换成机器数形式:(1)[x]阶移尾原=1,1010.100 111
[ y ] 阶移尾原 = 1 , 011 ; 1.101   011 1 ) 阶码相减 : [y]_{阶移尾原}=1,011;1.101\ 011\\ 1)阶码相减: [y]阶移尾原=1,0111.101 0111)阶码相减:
[ E x ] 移 + [ − E y ] 补 = 01 , 101 + 11 , 101 = 01 , 010 ( 无溢出 ) [E_x]_移+[-E_y]_补=01,101+11,101 =01,010(无溢出) [Ex]+[Ey]=01,101+11,101=01,010(无溢出)
2 ) 尾数相除 : ( 原码加减交替除法 ) 2)尾数相除:(原码加减交替除法) 2)尾数相除:(原码加减交替除法)
在这里插入图片描述

M x ∗ ÷ M y ∗ = 0.111   010 , [ M x ÷ M y ] 原 = 1.111   010 r ∗ = 0.000   010 × 2 − 6 = 0.000   000   000   010 M_{x}^*\div M_{y}^*= 0.111\ 010 ,[M_x\div M_y]_原= 1.111\ 010\\ r^*= 0.000\ 010\times2^{-6}= 0.000\ 000\ 000\ 010 Mx÷My=0.111 010[Mx÷My]=1.111 010r=0.000 010×26=0.000 000 000 010
3 ) 结果规格化 : 已是规格化数。 4 ) 舍入 : 已截断法舍入。 5 ) 溢出 : 无 3)结果规格化:已是规格化数。\\ 4)舍入:已截断法舍入。\\ 5)溢出:无 3)结果规格化:已是规格化数。4)舍入:已截断法舍入。5)溢出:
[ x ÷ y ] 阶移尾原 = 1 , 010 ; 1.111   010 x ÷ y = 2 010 × ( − 0.111   010 ) [x\div y]_{阶移尾原}=1,010;1.111\ 010 \\ x\div y=2^{010}\times (-0.111\ 010) [x÷y]阶移尾原=1,0101.111 010x÷y=2010×(0.111 010)

( 2 ) x = 2 110 × ( − 010   1101 ) y = 2 011 × ( − 0111   100 ) (2)x=2^{110}\times(-010\ 1101)\\ y=2^{011}\times(-0111\ 100) (2)x=2110×(010 1101)y=2011×(0111 100)
[ x ] 阶移尾原 = 1 , 110 ; 1.101   101 [x]_{阶移尾原}=1,110;1.101\ 101 [x]阶移尾原=1,1101.101 101
[ y ] 阶移尾原 = 1 , 011 ; 1.111   100 1 ) 阶码相减 : [y]_{阶移尾原}=1,011;1.111\ 100\\ 1)阶码相减: [y]阶移尾原=1,0111.111 1001)阶码相减:
[ E x ] 移 + [ − E y ] 补 = 01 , 110 + 11 , 101 = 01 , 011 ( 无溢出 ) [E_x]_移+[-E_y]_补=01,110+11,101=01,011(无溢出) [Ex]+[Ey]=01,110+11,101=01,011(无溢出)
2 ) 尾数相除 : ( 原码加减交替除法 ) 2)尾数相除:(原码加减交替除法) 2)尾数相除:(原码加减交替除法)
在这里插入图片描述
M x ∗ ÷ M y ∗ = [ M x ÷ M y ] 原 = 0.110   000 r ∗ = − 0.000   000 × 2 − 6 = − 0.000   000   000   000 M_{x}^*\div M_{y}^*= [M_x\div M_y]_原= 0.110\ 000\\ r^*=-0.000\ 000 \times 2^{-6}=-0.000\ 000\ 000\ 000 Mx÷My=[Mx÷My]=0.110 000r=0.000 000×26=0.000 000 000 000
注:由于加减交替除法算法中缺少对部分余数判“0”的步骤,因此算法运行中的某一步已除尽时,算法不会自动停止,而是继续按既定步数运行完。
3 ) 结果规格化 : 已是规格化数。 4 ) 舍入 : 已截断法舍入。 5 ) 溢出 : 无 3)结果规格化:已是规格化数。\\ 4)舍入:已截断法舍入。\\ 5)溢出:无 3)结果规格化:已是规格化数。4)舍入:已截断法舍入。5)溢出:
[ x ÷ y ] 阶移尾原 = 1 , 011 ; 0.110   000 x ÷ y = 2 011 × 0.110   000 [x\div y]_{阶移尾原}=1,011;0.110\ 000 \\ x\div y=2^{011}\times 0.110\ 000 [x÷y]阶移尾原=1,0110.110 000x÷y=2011×0.110 000

31.设机器字长为32位,用与非门和与或非门设计一个并行加法器(假设与非门的延迟时间为30ns,与或非门的延迟时间为45ns),要求完成32位加法时间不得超过0.6 μ s \mu s μs。画出进位链及加法器逻辑框图。

答:
首先根据题意要求选择进位方案:
1)若采用串行进位链(行波进位),则在 d i 、 t i d_i、t_i diti函数的基础上,实现32位进位需要的时间为:
T = 2 t y × 32 = 64 t y = 64 × 30 = 1920 n s T=2t_y\times 32=64t_y=64\times 30=1920ns T=2ty×32=64ty=64×30=1920ns
不满足 0.6 μ s 0.6\mu s 0.6μs的加法时间限制,不能用。(设 1 t y = 30 n s 1t_y=30ns 1ty=30ns)
2)若采用单重分组跳跃进位(级连方式),则在di、ti的基础上,4位一组分组,32位进位需:
T = 2.5 t y × 8 组 = 20 t y = 20 × 30 = 600 n s T=2.5t_y\times 8组=20t_y=20\times 30=600ns T=2.5ty×8=20ty=20×30=600ns
刚好满足 0.6 μ s 0.6\mu s 0.6μs加法时间的限制。
考虑到一次加法除进位时间外,还需di、 ti函数的产生时间、和的产生时间(最高位和)等因素,故此进位方案仍不适用。
结论:若采用单重分组跳跃进位,小组规模需在6位以上较为合适。即:
T = 2.5 t y × 6 组 = 15 t y = 15 × 30 = 450 n s T=2.5t_y\times 6组=15t_y=15\times 30=450ns T=2.5ty×6=15ty=15×30=450ns
除进位外还有 150 n s ( 约 5 t y ) 150ns(约5t_y) 150ns(5ty)左右的时间供加法开销,较充裕。
3)若采用双重分组跳跃进位(二级先行-级联进位),4位一小组,4小组为一大组分组,则32位进位需:
T = 2.5 t y × 4 级 = 10 t y = 10 × 30 = 300 n s T=2.5t_y\times 4级=10t_y=10\times 30=300ns T=2.5ty×4=10ty=10×30=300ns
完全满足 0.6 μ s 0.6\mu s 0.6μs的加法时间限制,可以使用。

双重分组跳跃进位(两级先行进位)
32位双重分组跳跃进位的进位链框图见教材286页图6.23。
在这里插入图片描述
6位一组单重分组跳跃进位的进位链框图如下:
在这里插入图片描述
注:一个完整的加法器还应考虑 d i 、 t i d_i、t_i diti产生电路、求和电路等。

加法器逻辑框图如下。图中,进位链电路可选上述两种方案之一。
在这里插入图片描述

32.设机器字长为16位,分别按4、4、4、4和5、5、3、3分组后

(1)画出两种分组方案的单重分组并行进位链框图,并比较哪种方案运算速度快。
(2)画出两种分组方案的双重分组并行进位链框图,并对这两种方案进行比较。
(3)用74181和74182画出单重和双重分组的并行进位链框图。
答:
(1)4-4-4-4分组的16位单重分组并行进位链框图见教材286页图6.22。
单重分组跳跃进位(一级先行进位)
16位并行加法器进位链框图(6.22)
在这里插入图片描述
注意:16位一级先行进位加法器最长进位延迟时间为 10 t y 10t_y 10ty

5-5-3-3分组的16位单重分组并行进位链框图如下:
在这里插入图片描述
4-4-4-4分组的进位时间 = 2.5 t y × 4 = 10 t y ; =2.5t_y\times 4=10t_y; =2.5ty×4=10ty;
5-5-3-3分组的进位时间 = 2.5 t y × 4 = 10 t y ; =2.5t_y\times 4=10t_y; =2.5ty×4=10ty;
两种分组方案最长加法时间相同。
结论:单重分组并行进位的最长进位时间只与组数有关,与组内位数无关。

(2)4-4-4-4分组的16位双重分组并行进位链框图见教材288页图6.26。
在这里插入图片描述
5-5-3-3分组的16位双重分组并行进位链框图如下:
在这里插入图片描述
4-4-4-4分组的进位时间 = 2.5 t y × 3 = 7.5 t y ; =2.5t_y\times 3=7.5t_y; =2.5ty×3=7.5ty;
5-5-3-3分组的进位时间 = 2.5 t y × 3 = 7.5 t y ; =2.5t_y\times 3=7.5t_y; =2.5ty×3=7.5ty;
两种分组方案最长加法时间相同。
结论:双重分组并行进位的最长进位时间只与组数和级数有关,与组内位数无关。

(3)单重分组16位并行加法器逻辑图如下(正逻辑):
在这里插入图片描述
双重分组16位并行加法器逻辑图如下(正逻辑):
在这里插入图片描述
图中,设与进位无关的引脚省略不画,不用的引脚也省略不画。

注意:
1)181芯片正、负逻辑的引脚表示方法;
2)为强调可比性,5-5-3-3分组时不考虑扇入影响;
3)181芯片只有最高、最低两个进位输入/输出端组内进位无引脚;
4)181为4位片,无法5-5-3-3分组,只能4-4-4-4分组;
5)单重分组跳跃进位只用到181,使用182的一般是双重以上分组跳跃进位;
6)单重分组跳跃进位是并行进位和串行进位技术的结合;双重分组跳跃进位是二级并行进位技术;特别注意在位数较少时,双重分组跳跃进位可以采用全先行进位技术实现;位数较多时,可采用双重分组跳跃进位和串行进位技术结合实现。

猜你喜欢

转载自blog.csdn.net/weixin_45735391/article/details/127210733