《计算机组成原理课后答案(第二版)_唐朔飞_第六章 计算机的运算方法.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理课后答案(第二版)_唐朔飞_第六章 计算机的运算方法.ppt(126页珍藏版)》请在三一办公上搜索。
1、计算机的运算方法,第 六 章,1.最少用几位二进制数即可表示任一五位长的十进制正整数?解:五位长的十进制正整数中,最大的数99999满足条件:216(=65536)99999217(=131072),故最少用17位二进制数即可表示任一五位长的十进制正整数。,9,2.已知X=0.a1a2a3a4a5a6(ai为0或1),讨论下列几种情况时ai各取何值。(1)X 1/2;(2)X 1/8;(3)1/4 X 1/16 解:(1)若要X 1/2,只要a1=1,a2a6不全为0即可(a2 or a3 or a4 or a5 or a6=1);(2)若要X 1/8,只要a1a3不全为0即可(a1 or a
2、2 or a3=1),a4a6可任取0或1;,(3)若要1/4 X 1/16,只要a1=0,a2可任取0或1;当a2=0时,若a3=0,则必须a4=1,且a5、a6不全为0(a5 or a6=1;若a3=1,则a4a6可任取0或1;当a2=1时,a3a6可任取0或1。3.设x为整数,x补=1,x1x2x3x4x5,若要求 x-16,试问 x1x5 应取何值?解:若要x-16,需 x1=0,x2x5 任意。(注:负数绝对值大的反而小。),4.设机器数字长为8位(含1位符号位在内),写出对应下列各真值的原码、补码和反码。-13/64,29/128,100,-87 解:真值与不同机器码对应关系如下:
3、,真 值十进制 二进制 原 码 反 码 补 码-13/64-0.00 1101 1.001 1010 1.110 0101 1.110 011029/128 0.001 1101 0.001 1101 0.001 1101 0.001 1101 100 110 0100 0,110 0100 0,110 0100 0,110 0100-87-101 0111 1,101 0111 1,010 1000 1,010 1001,5.已知x补,求x原和x。x1补=1.1100;x2补=1.1001;x3补=0.1110;x4补=1.0000;x5补=1,0101;x6补=1,1100;x7补=0,0
4、111;x8补=1,0000;解:x补与x原、x的对应关系如下:,x补 x原 x(二进制)x(十进制)1.1100 1.0100-0.0100-1/4 1.1001 1.0111-0.0111-7/16 0.1110 0.1110+0.1110+7/8 1.0000 无-1.0000-1 1,0101 1,1011-1011-11 1,1100 1,0100-0100-4 0,0111 0,0111+0111+7 1,0000 无-10000-16,6.设机器数字长为8位(含1位符号位在内),分整数和小数两种情况讨论真值x为何值时,x补=x原成立。解:当x为小数时,若x 0,则 x补=x原成立
5、;若x 0,则当x=-1/2时,x补=x原成立。当x为整数时,若x 0,则 x补=x原成立;若x 0,则当x=-64时,x补=x原成立。,7.设x为真值,x*为绝对值,说明-x*补=-x补能否成立。解:当x为真值,x*为绝对值时,-x*补=-x补不能成立。-x*补=-x补的结论只在x0时成立。当xy补,是否有xy?解:若x补y补,不一定有xy。x补 y补时 x y的结论只在 x 0、y 0,及 x0、yy,但由于负数补码的符号位为1,则x补0时,有x y补。,注意:1)绝对值小的负数其值反而大,且负数的绝对值越小,其补码值越大。因此,当xy补,必有xy。2)补码的符号位和数值位为一体,不可分开
6、分析。3)完整的答案应分四种情况分析,但也可通过充分分析一种不成立的情况获得正确答案。4)由于补码0的符号位为0,因此x、y=0可归纳到0的一类情况讨论。,9.当十六进制数9B和FF分别表示为原码、补码、反码、移码和无符号数时,所对应的十进制数各为多少(设机器数采用一位符号位)?解:真值和机器数的对应关系如下:,注意:1)9BH、FFH为机器数,本身含符号位。2)移码符号位与原、补、反码相反,数值同补码。,10.在整数定点机中,设机器数采用一位符号位,写出0的原码、补码、反码和移码,得出什么结论?解:0的机器数形式如下:,结论:补、移码0的表示唯一,原、反码不唯一。注意:本题不用分析不同编码间
7、的其他特性。11.已知机器数字长为4位(其中1位为符号位),写出整数定点机和小树定点机中原码、补码和反码的全部形式,并注明其对应的十进制真值。,解:机器数与对应的真值形式如下:,续表1:,续表2:,续表3:,12.设浮点数格式为:阶码5位(含1位阶符),尾数11位(含1位数符)。写出51/128、27/1024、7.375、-86.5所对应的机器数。要求如下:(1)阶码和尾数均为原码;(2)阶码和尾数均为补码;(3)阶码为移码,尾数为补码。(注:题意中应补充规格化数的要求。)解:据题意画出该浮点数的格式:1 4 1 10,阶符 阶码 数符 尾数,注意:1)正数补码不“变反+1”。2)机器数末位
8、的0不能省。,将十进制数转换为二进制:x1=51/128=(0.011 001 1)2=2-1(0.110 011)2 x2=-27/1024=(-0.000 001 101 1)2=2-5(-0.110 11)2 x3=7.375=(111.011)2=23(0.111 011)2 x4=-86.5=(-1 010 110.1)2=27(-0.101 011 01)2 则以上各数的浮点规格化数为:(1)x1浮=1,0001;0.110 011 000 0(2)x1浮=1,1111;0.110 011 000 0(3)x1浮=0,1111;0.110 011 000 0,(1)x2浮=1,01
9、01;1.110 110 000 0(2)x2浮=1,1011;1.001 010 000 0(3)x2浮=0,1011;1.001 010 000 0(1)x3浮=0,0011;0.111 011 000 0(2)x3浮=0,0011;0.111 011 000 0(3)x3浮=1,0011;0.111 011 000 0(1)x4浮=0,0111;1.101 011 010 0(2)x4浮=0,0111;1.010 100 110 0(3)x4浮=1,0111;1.010 100 110 0注:以上浮点数也可采用如下格式:1 1 4 10,数符 阶符 阶码 尾数,此时只要将上述答案中的数符
10、位移到最前面即可。,13.浮点数格式同上题,当阶码基值分别取2和16时,(1)说明2和16在浮点数中如何表示。(2)基值不同对浮点数什么有影响?(3)当阶码和尾数均用补码表示,且尾数采用规格化形式,给出两种情况下所能表示的最大正数和非零最小正数真值。解:(1)阶码基值不论取何值,在浮点数中均为隐含表示,即:2和16不出现在浮点格式中,仅为人为的约定。,(2)当基值不同时,对数的表示范围和精度都有影响。即:在浮点格式不变的情况下,基越大,可表示的浮点数范围越大,但精度越下降。(3)r=2时,最大正数的浮点格式为:0,1111;0.111 111 111 1 其真值为:N+max=215(1-2-
11、10)非零最小规格化正数浮点格式为:1,0000;0.100 000 000 0 其真值为:N+min=2-162-1=2-17 r=16时,最大正数的浮点格式为:0,1111;0.1111 1111 11 其真值为:N+max=1615(1-2-10)非零最小规格化正数浮点格式为:1,0000;0.0001 0000 00 其真值为:N+min=16-1616-1=16-17,14.设浮点数字长为32位,欲表示6万间的十进制数,在保证数的最大精度条件下,除阶符、数符各取一位外,阶码和尾数各取几位?按这样分配,该浮点数溢出的条件是什么?解:若要保证数的最大精度,应取阶的基=2。若要表示6万间的
12、十进制数,由于32768(215)6万 65536(216),则:阶码除阶符外还应取5位(向上取2的幂)。故:尾数位数=32-1-1-5=25位 按此格式,该浮点数上溢的条件为:阶码 32 该浮点数格式如下:1 5 1 25,15.什么是机器零?若要求全0表示机器零,浮点数的阶码和尾数应采取什么机器数形式?解:机器零指机器数所表示的零的形式,它与真值零的区别是:机器零在数轴上表示为“0”点及其附近的一段区域,即在计算机中小到机器数的精度达不到的数均视为“机器零”,而真零对应数轴上的一点(0点)。若要求用“全0”表示浮点机器零,则浮点数的阶码应用移码、尾数用补码表示(此时阶码为最小阶、尾数为零,
13、而移码的最小码值正好为“0”,补码的零的形式也为“0”,拼起来正好为一串0的形式)。,16.设机器数字长为16位,写出下列各种情况下它能表示的数的范围。设机器数采用一位符号位,答案均用十进制表示。(1)无符号数;(2)原码表示的定点小数;(3)补码表示的定点小数;(4)补码表示的定点整数;(5)原码表示的定点整数;(6)浮点数的格式为:阶码6位(含1位阶符),尾数10位(含1位数符)。分别写出正数和负数的表示范围;(注:加条件:阶原尾原非规格化数。)(7)浮点数格式同(6),机器数采用补码规格化形式,分别写出其对应的正数和负数的真值范围。,解:各种表示方法数据范围如下:(1)无符号整数:0 2
14、16-1,即:0 65535;(2)原码定点小数:1-2-15-(1-2-15)(3)补码定点小数:1-2-15-1(4)补码定点整数:215-1-215,即:32767-32768;(5)原码定点整数:215-1-(215-1),即:32767-32767;,(6)据题意画出该浮点数格式:1 5 1 9,阶符 阶码 数符 尾数,由于题意中未指定该浮点数所采用的码制,则不同的假设前提会导致不同的答案,示意如下:1)当采用阶原尾原非规格化数时,最大正数=0,11 111;0.111 111 111最小正数=1,11 111;0.000 000 001 则正数表示范围为:231(1-2-9)2-3
15、1 2-9,最大负数=1,11 111;1.000 000 001最小负数=0,11 111;1.111 111 111 则负数表示范围为:2-31(-2-9)-231(1-2-9)2)当采用阶移尾原非规格化数时,正数表示范围为:231(1-2-9)2-32 2-9 负数表示范围为:2-32(-2-9)-231(1-2-9)注:零视为中性数,不在此范围内。,(7)当机器数采用补码规格化形式时,若不考虑隐藏位,则最大正数=0,11 111;0.111 111 111最小正数=1,00 000;0.100 000 000 其对应的正数真值范围为:231(1-2-9)2-32 2-1最大负数=1,0
16、0 000;1.011 111 111最小负数=0,11 111;1.000 000 000 其对应的负数真值范围为:-2-32(2-1+2-9)231(-1),注意:1)应写出可表示范围的上、下限精确值(用或,不要用或)。2)应用十进制2的幂形式分阶、尾两部分表示,这样可反映出浮点数的格式特点。括号不要乘开,不要用十进制小数表示,不直观、不精确且无意义。3)原码正、负域对称,补码正、负域不对称,浮点数阶、尾也如此。特别要注意浮点负数补码规格化范围。(满足条件:数符MSB位=1),17.设机器数字长为8位(含1位符号位),对下列各机器数进行算术左移一位、两位,算术右移一位、两位,讨论结果是否正
17、确。x1原=0.001 1010;x2原=1.110 1000;x3原=1.001 1001;y1补=0.101 0100;y2补=1.110 1000;y3补=1.001 1001;z1反=1.010 1111;z2反=1.110 1000;z3反=1.001 1001。,解:算术左移一位:x1原=0.011 0100;正确x2原=1.101 0000;溢出(丢1)出错x3原=1.011 0010;正确y1补=0.010 1000;溢出(丢1)出错y2补=1.101 0000;正确y3补=1.011 0010;溢出(丢0)出错z1反=1.101 1111;溢出(丢0)出错z2反=1.101
18、0001;正确z3反=1.011 0011;溢出(丢0)出错 算术左移两位:x1原=0.110 1000;正确x2原=1.010 0000;溢出(丢11)出错x3原=1.110 0100;正确,算术左移两位:y1补=0.101 0000;溢出(丢10)出错y2补=1.010 0000;正确y3补=1.110 0100;溢出(丢00)出错z1反=1.011 1111;溢出(丢01)出错z2反=1.010 0011;正确z3反=1.110 0111;溢出(丢00)出错 算术右移一位:x1原=0.000 1101;正确 x2原=1.011 0100;正确 x3原=1.000 1100(1);丢1,产
19、生误差 y1补=0.010 1010;正确 y2补=1.111 0100;正确 y3补=1.100 1100(1);丢1,产生误差,算术右移一位:z1反=1.101 0111;正确z2反=1.111 0100(0);丢0,产生误差z3反=1.100 1100;正确 算术右移两位:x1原=0.000 0110(10);产生误差x2原=1.001 1010;正确x3原=1.000 0110(01);产生误差y1补=0.001 0101;正确y2补=1.111 1010;正确y3补=1.110 0110(01);产生误差z1反=1.110 1011;正确z2反=1.111 1010(00);产生误差
20、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/
21、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 A补=0.001 0010 B补=1.100 1100,A+B补=0.0 0 1 0 0 1 0+1.1 0 0 1 1 0 0 1.1 0 1 1 1 1 0 无溢出 A+B=(-0.010 0010)2=-17/64(2)A=19/32=(0.100 1100)2 B=-17/128=(-0.001 0001)2 A补=0.100 1100 B补=1.110 1111-B补=0.001
22、 0001A-B补=0.1 0 0 1 1 0 0+0.0 0 1 0 0 0 1 0.1 0 1 1 1 0 1 无溢出 A-B=(0.101 1101)2=93/128,(3)A=-3/16=(-0.001 1000)2 B=9/32=(0.010 0100)2 A补=1.110 1000 B补=0.010 0100 A+B补=1.1 1 0 1 0 0 0+0.0 1 0 0 1 0 0 0.0 0 0 1 1 0 0 无溢出 A+B=(0.000 1100)2=3/32(4)A=-87=(-101 0111)2 B=53=(110 101)2 A补=1,010 1001 B补=0,01
23、1 0101-B补=1,100 1011,A-B补=1,0 1 0 1 0 0 1+1,1 0 0 1 0 1 1 0,1 1 1 0 1 0 0 溢出 A-B=(-1,000 1100)2=-140(5)A=115=(111 0011)2 B=-24=(-11 000)2 A补=0,111 0011 B补=1,110 1000A+B补=0,1 1 1 0 0 1 1+1,1 1 0 1 0 0 0 0,1 0 1 1 0 1 1无溢出 A+B=(101 1011)2=91注意:1、单符号位运算要用单符号位的判断方法判溢出;2、结果的真值形式上要和原始数据一致。,20.用原码一位乘、两位乘和补
24、码一位乘(Booth算法)、两位乘计算xy。(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 x0=0,y0=1,z0=x0 y0=0 1=1 x*y*=0.100 111 100 010 xy原=1.100 111 100 010 xy=-0.100 111 100 010,原码一位乘:
25、部分积 乘数y*0.0 0 0 0 0 0.1 0 1 1 1 0+01 0.0 0 0 0 0 0 0.1 0 1 1 1+x*+0.1 1 0 1 1 1 0.1 1 0 1 1 11 0.0 1 1 0 1 1 1 0.1 0 1 1+x*+0.1 1 0 1 1 1 1.0 1 0 0 1 01 0.1 0 1 0 0 1 0 1 0.1 0 1+x*+0.1 1 0 1 1 1 1.1 0 0 0 0 01 0.1 1 0 0 0 0 0 0 1 0.1 0+01 0.0 1 1 0 0 0 0 0 0 1 0.1 x*+0.1 1 0 1 1 1 1.0 0 1 1 1 11 0.
26、1 0 0 1 1 1 1 0 0 0 1 0,2x*=01.101110,-x*补=-x补=1.001001原码两位乘:部分积 乘数 Cj 0 0 0.0 0 0 0 0 0 0 0.1 0 1 1 1 0 0+0 0 1.1 0 1 1 1 0+2x*0 0 1.1 0 1 1 1 0 02 0 0 0.0 1 1 0 1 1 1 0 0 0.1 0 1 1+1 1 1.0 0 1 0 0 1+-x*补 1 1 1.1 0 0 1 0 0 12 1 1 1.1 1 1 0 0 1 0 0 1 0 0 0.1 0+1 1 1.0 0 1 0 0 1+-x*补 1 1 1.0 0 0 0 1
27、0 12 1 1 1.1 1 0 0 0 0 1 0 0 0 1 0 0 0.+0 0 0.1 1 0 1 1 1+x*0 0 0.1 0 0 1 1 1 1 0 0 0 1 0 0结果同一位乘,xy=-0.100 111 100 010,x补=x=0.110111y补=1.010010-x补=1.0010012x补=01.101110-2x补=10.010010 xy补=1.011 000 011 110 0 xy=-0.100 111 100 010 0补码一位乘、两位乘运算过程如下:,补码一位乘:部分积 乘数y补 yn+1 0 0.0 0 0 0 0 0 1.0 1 0 0 1 0 0+
28、01 0 0.0 0 0 0 0 0 0 1.0 1 0 0 1 0+1 1.0 0 1 0 0 1+-x补 1 1.0 0 1 0 0 1 1 1 1.1 0 0 1 0 0 1 0 1.0 1 0 0 1+0 0.1 1 0 1 1 1+x补 0 0.0 1 1 0 1 11 0 0.0 0 1 1 0 1 1 1 0 1.0 1 0 0+0 1 0 0.0 0 0 1 1 0 1 1 1 0 1.0 1 0+1 1.0 0 1 0 0 1+-x补 1 1.0 0 1 1 1 11 1 1.1 0 0 1 1 1 1 1 1 1 0 1.0 1+0 0.1 1 0 1 1 1+x补 0 0
29、.0 1 1 1 1 01 0 0.0 0 1 1 1 1 0 1 1 1 1 0 1.0+1 1.0 0 1 0 0 1+-x补 1 1.0 1 1 0 0 0 0 1 1 1 1 0 0 清0,补码两位乘:部分积 乘数 yn+1 0 0 0.0 0 0 0 0 0 1 1.0 1 0 0 1 0 0+1 1 0.0 1 0 0 1 0+-2x补 1 1 0.0 1 0 0 1 0 2 1 1 1.1 0 0 1 0 0 1 0 1 1.0 1 0 0 1+0 0 0.1 1 0 1 1 1+x补 0 0 0.0 1 1 0 1 1 2 0 0 0.0 0 0 1 1 0 1 1 1 0 1
30、 1.0 1 0+0 0 0.1 1 0 1 1 1+x补 0 0 0.1 1 1 1 0 1 2 0 0 0.0 0 1 1 1 1 0 1 1 1 1 0 1 1.0+1 1 1.0 0 1 0 0 1+-x补 1 1 1.0 1 1 0 0 0 0 1 1 1 1 0 0 0.清0 结果同补码一位乘,xy=-0.100 111 100 010 00,(2)x=-0.010111,y=-0.010101 x原=1.010111,y原=1.010101 x*=0.010111,y*=0.010101-x*补=1.101001,2x*=0.101110-2x*补=1.010010 x0=1,y
31、0=1,z0=x0 y0=1 1=0 x补=1.101001,y补=1.101011-x补=0.010111,2x补=1.010010-2x补=0.101110 x*y*=0.000 111 100 011 xy原=0.000 111 100 011 xy补=0.000 111 100 011 0 xy=0.000 111 100 011运算过程如下:,原码一位乘:部分积 乘数y*0.0 0 0 0 0 0.0 1 0 1 0 1+x*+0.0 1 0 1 1 1 0.0 1 0 1 1 1 1 0.0 0 1 0 1 1 1.0 1 0 1 0+01 0.0 0 0 1 0 1 1 1.0
32、1 0 1+x*+0.0 1 0 1 1 1 0.0 1 1 1 0 01 0.0 0 1 1 1 0 0 1 1.0 1 0+01 0.0 0 0 1 1 1 0 0 1 1.0 1+x*+0.0 1 0 1 1 1 0.0 1 1 1 1 01 0.0 0 1 1 1 1 0 0 0 1 1.0+01 0.0 0 0 1 1 1 1 0 0 0 1 1,原码两位乘:部分积 乘数y*Cj 0 0 0.0 0 0 0 0 0 0 0.0 1 0 1 0 1 0+0 0 0.0 1 0 1 1 1+x*0 0 0.0 1 0 1 1 1 02 0 0 0.0 0 0 1 0 1 1 1 0 0.
33、0 1 0 1+0 0 0.0 1 0 1 1 1+x*0 0 0.0 1 1 1 0 0 02 0 0 0.0 0 0 1 1 1 0 0 1 1 0 0.0 1+0 0 0.0 1 0 1 1 1+x*0 0 0.0 1 1 1 1 0 02 0 0 0.0 0 0 1 1 1 1 0 0 0 1 1 0 0.+0 结果同一位乘,xy=0.000 111 100 011,补码一位乘:部分积 乘数y补 yn+1 0 0.0 0 0 0 0 0 1.1 0 1 0 1 1 0+0 0.0 1 0 1 1 1+-x补 0 0.0 1 0 1 1 1 1 0 0.0 0 1 0 1 1 1 1.1
34、 0 1 0 1 1+0 1 0 0.0 0 0 1 0 1 1 1 1.1 0 1 0 1+1 1.1 0 1 0 0 1+x补 1 1.1 0 1 1 1 0 1 1 1.1 1 0 1 1 1 0 1 1 1.1 0 1 0+0 0.0 1 0 1 1 1+-x补 0 0.0 0 1 1 1 01 0 0.0 0 0 1 1 1 0 0 1 1 1.1 0 1+1 1.1 0 1 0 0 1+x补 1 1.1 1 0 0 0 01 1 1.1 1 1 0 0 0 0 0 0 1 1 1.1 0+0 0.0 1 0 1 1 1+-x补 0 0.0 0 1 1 1 1 1 0 0.0 0 0
35、 1 1 1 1 0 0 0 1 1 1.1+0,补码两位乘:部分积 乘数 yn+1 0 0 0.0 0 0 0 0 0 1 1.1 0 1 0 1 1 0+0 0 0.0 1 0 1 1 1+-x补 0 0 0.0 1 0 1 1 1 2 0 0 0.0 0 0 1 0 1 1 1 1 1.1 0 1 0 1+0 0 0.0 1 0 1 1 1+-x补 0 0 0.0 1 1 1 0 0 2 0 0 0.0 0 0 1 1 1 0 0 1 1 1 1.1 0 1+0 0 0.0 1 0 1 1 1+-x补 0 0 0.0 1 1 1 1 0 2 0 0 0.0 0 0 1 1 1 1 0 0
36、 0 1 1 1 1.1 清0+0结果同补码一位乘,xy=0.000 111 100 011 00,(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-x*补=-x补=1,101 101 2x*=2x补=0,100 110-2x*补=-2x补=1,011 010 x0=0,y0=0,z0=x0 y0=0 0=0 xy=x*y*=xy原=xy补=0,001 010 011 001=(665)10 运算过程如下:,原码一位乘:部分积 乘数y*0,0 0 0 0 0 0 1 0 0 0 1 1+x*+
37、0,0 1 0 0 1 1 0,0 1 0 0 1 1 1 0,0 0 1 0 0 1 1 1 0 0 0 1+x*+0,0 1 0 0 1 1 0,0 1 1 1 0 0 1 0,0 0 1 1 1 0 0 1 1 0 0 0+01 0,0 0 0 1 1 1 0 0 1 1 0 0+01 0,0 0 0 0 1 1 1 0 0 1 1 0+0 1 0,0 0 0 0 0 1 1 1 0 0 1 1+x*+0,0 1 0 0 1 1 0,0 1 0 1 0 01 0,0 0 1 0 1 0 0 1 1 0 0 1,原码两位乘:部分积 乘数y*Cj 0 0 0,0 0 0 0 0 0 0 0,
38、1 0 0 0 1 1 0+1 1 1,1 0 1 1 0 1+-x*补 1 1 1,1 0 1 1 0 1 12 1 1 1,1 1 1 0 1 1 0 1 0 0,1 0 0 0+0 0 0,0 1 0 0 1 1+x*0 0 0,0 0 1 1 1 0 02 0 0 0,0 0 0 0 1 1 1 0 0 1 0 0,1 0+0 0 0,1 0 0 1 1 0+2x*0 0 0,1 0 1 0 0 1 02 0 0 0,0 0 1 0 1 0 0 1 1 0 0 1 0 0,+0 结果同一位乘,xy=0,001 010 011 001,补码一位乘:部分积 乘数y补 yn+1 0 0,0
39、0 0 0 0 0 0,1 0 0 0 1 1 0+1 1,1 0 1 1 0 1+-x补 1 1,1 0 1 1 0 1 1 1 1,1 1 0 1 1 0 1 0,1 0 0 0 1 1+0 1 1 1,1 1 1 0 1 1 0 1 0,1 0 0 0 1+0 0,0 1 0 0 1 1+x补 0 0,0 0 1 1 1 0 1 0 0,0 0 0 1 1 1 0 0 1 0,1 0 0 0+0 1 0 0,0 0 0 0 1 1 1 0 0 1 0,1 0 0+0 1 0 0,0 0 0 0 0 1 1 1 0 0 1 0,1 0+1 1,1 0 1 1 0 1+-x补 1 1,1 0
40、 1 1 1 0 1 1 1,1 1 0 1 1 1 0 1 1 0 0 1 0,1+0 0,0 1 0 0 1 1+x补 0 0,0 0 1 0 1 0 0 1 1 0 0 1 0 注:整数乘此位要省。,补码两位乘:部分积 乘数 yn+1 0 0 0,0 0 0 0 0 0 0 0,1 0 0 0 1 1 0+1 1 1,1 0 1 1 0 1+-x补 1 1 1,1 0 1 1 0 1 2 1 1 1,1 1 1 0 1 1 0 1 0 0,1 0 0 0 1+0 0 0,0 1 0 0 1 1+x补 0 0 0,0 0 1 1 1 0 2 0 0 0,0 0 0 0 1 1 1 0 0
41、1 0 0,1 0 0+1 1 1,0 1 1 0 1 0+-2x补 1 1 1,0 1 1 1 0 1 2 1 1 1,1 1 0 1 1 1 0 1 1 0 0 1 0 0,1+0 0 0,0 1 0 0 1 1+0 0 0 0,0 0 1 0 1 0 0 1 1 0 0 1 0 0 省 结果同补码一位乘,xy=0,001 010 011 001,(4)x=0.110 11,y=-0.111 01 x*=x原=x补=0.110 11 y原=1.111 01,y*=0.111 01 y补=1.000 11-x*补=-x补=1.001 01 2x*=2x补=01.101 10-2x*补=-2x
42、补=10.010 10 x0=0,y0=1,z0=x0 y0=0 1=1 x*y*=0.110 000 111 1 xy原=1.110 000 111 1 xy补=1.001 111 000 10 xy=-0.110 000 111 1运算过程如下:,原码一位乘:部分积 乘数y*0.0 0 0 0 0.1 1 1 0 1+x*+0.1 1 0 1 1 0.1 1 0 1 1 1 0.0 1 1 0 1 1.1 1 1 0+01 0.0 0 1 1 0 1 1.1 1 1+x*+0.1 1 0 1 1 1.0 0 0 0 1 1 0.1 0 0 0 0 1 1 1.1 1+x*+0.1 1 0
43、1 1 1.0 1 0 1 1 1 0.1 0 1 0 1 1 1 1 1.1+x*+0.1 1 0 1 1 1.1 0 0 0 0 1 0.1 1 0 0 0 0 1 1 1 1,原码两位乘:部分积 乘数y*Cj 0 0 0.0 0 0 0 0 0.1 1 1 0 1 0+0 0 0.1 1 0 1 1+x*0 0 0.1 1 0 1 1 02 0 0 0.0 0 1 1 0 1 1 0.1 1 1+1 1 1.0 0 1 0 1+-x*补 1 1 1.0 1 0 1 1 12 1 1 1.1 1 0 1 0 1 1 1 1.0 1+0 0 1.1 0 1 1 0+2x*0 0 1.1 0
44、0 0 0 01 0 0 0.1 1 0 0 0 0 1 1 1 1 0.+0 结果同一位乘,xy=-0.110 000 111 1,补码一位乘:部分积 乘数y补 yn+1 0 0.0 0 0 0 0 1.0 0 0 1 1 0+1 1.0 0 1 0 1+-x补 1 1.0 0 1 0 1 1 1 1.1 0 0 1 0 1 1.0 0 0 1 1+0 1 1 1.1 1 0 0 1 0 1 1.0 0 0 1+0 0.1 1 0 1 1+x补 0 0.1 0 1 0 0 1 0 0.0 1 0 1 0 0 0 1 1.0 0 0+0 1 0 0.0 0 1 0 1 0 0 0 1 1.0
45、0+0 1 0 0.0 0 0 1 0 1 0 0 0 1 1.0+1 1.0 0 1 0 1+-x补 1 1.0 0 1 1 1 1 0 0 0 1 0 清0,补码两位乘:部分积 乘数 yn+1 0 0 0.0 0 0 0 0 1.0 0 0 1 1 0+1 1 1.0 0 1 0 1+-x补 1 1 1.0 0 1 0 1 2 1 1 1.1 1 0 0 1 0 1 1.0 0 0 1+0 0 0.1 1 0 1 1+x补 0 0 0.1 0 1 0 0 2 0 0 0.0 0 1 0 1 0 0 0 1 1.0 0+1 1 0.0 1 0 1 0+-2x补 1 1 0.0 1 1 1 1
46、 1 1 1 1.0 0 1 1 1 1 0 0 0 1 0.清0 结果同补码一位乘,xy=-0.110 000 111 10,21.用原码加减交替法和补码加减交替法计算xy。(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-y*补=-y补=1.010 101 q0=x0y0=0 0=0 xy=x*y*=xy原=0.111 010 r*=0.000 0102-6=0.
47、000 000 000 010 计算过程如下:,原码加减交替除法:被除数(余数)商 0.1 0 0 1 1 1 0.0 0 0 0 0 0+1.0 1 0 1 0 1 试减,+-y*补 1.1 1 1 1 0 01 1.1 1 1 0 0 0 0.+0.1 0 1 0 1 1 r0,+-y*补 0.0 1 1 0 1 11 0.1 1 0 1 1 0 0.1 1+1.0 1 0 1 0 1 r0,+-y*补 0.0 0 1 0 1 1,续:被除数(余数)商1 0.0 1 0 1 1 0 0.1 1 1+1.0 1 0 1 0 1 r0,+-y*补 1.1 0 1 0 1 11 1.0 1 0
48、1 1 0 0.1 1 1 0+0.1 0 1 0 1 1 r0,+-y*补 1.0 1 0 1 1 1 1 0.1 1 1 0 1 0+0.1 0 1 0 1 1 r0,+y*(恢复余数)0.0 0 0 0 1 0,补码加减交替除法:被除数(余数)商 0 0.1 0 0 1 1 1 0.0 0 0 0 0 0+1 1.0 1 0 1 0 1 试减,x、y同号,+-y补 1 1.1 1 1 1 0 01 1 1.1 1 1 0 0 0 0.+0 0.1 0 1 0 1 1 r、y异号,+y补 0 0.1 0 0 0 1 1 1 0 1.0 0 0 1 1 0 0.1+1 1.0 1 0 1 0
49、 1 r、y同号,+-y补 0 0.0 1 1 0 1 11 0 0.1 1 0 1 1 0 0.1 1+1 1.0 1 0 1 0 1 r、y同号,+-y补 0 0.0 0 1 0 1 1,续:被除数(余数)商1 0 0.0 1 0 1 1 0 0.1 1 1+1 1.0 1 0 1 0 1 r、y同号,+-y补 1 1.1 0 1 0 1 11 1 1.0 1 0 1 1 0 0.1 1 1 0+0 0.1 0 1 0 1 1 r、y异号,+y补 0 0.0 0 0 0 0 11 0 0.0 0 0 0 1 0 0.1 1 1 0 1+1 1.0 1 0 1 0 1 r、y同号,+-y补
50、1 1.0 1 0 1 1 1 1 0.1 1 1 0 1 1 恒置1+0 0.1 0 1 0 1 1 r、x异号,(恢复余数)0 0.0 0 0 0 1 0 且r、y异号,+y补注:恒置1引入误差。xy=xy补=0.111 011 r补=0.000 010,r=r*=0.000 000 000 010,(2)x=-0.101 01,y=0.110 11 x原=1.101 01 x*=0.101 01 y*=y原=y补=y=0.110 11-y*补=-y补=1.001 01 x补=1.010 11 q0=x0 y0=1 0=1 x*y*=0.110 00 xy原=1.110 00 xy=-0.