孙德文+计算机组成原理+习题答案
- 格式:docx
- 大小:1.87 MB
- 文档页数:96
计算机组成基础习题详解(初稿)孙德文上海交通大学软件学院2009.3第1章计算机系统概论1.1 数字计算机和模拟计算机的区别?解:电子数字计算机的特点是数据由离散量来表示,是对离散变量进行处理和运算的解算装置。
电子模拟计算机的特点是数据由连续量来表示,是对连续变量进行运算的解算装置。
在电子模拟计算机中,变量为连续变化的直流电压、电流或电荷。
1.2 说明冯·诺依曼计算机的设计思想?写出冯·诺依曼计算机的主要组成部分?解:冯·诺依曼计算机的设计思想是:提出了“存储程序”的概念,程序设计者按计算要求编制好程序,将程序和运行程序中所用的数据以二进制代码的形式存入计算机的存储器中,由计算机自动执行程序。
使电子计算机有了通用性,只要能写出正确的指令,计算机执行时就无须人工干预。
冯·诺依曼计算机的主要组成部分是:运算器、控制器、存储器、输入设备和输出设备。
其中运算器和控制器合称“中央处理机”(或称为CPU,Central Processing Unit),CPU与存储器(内存储器)合称为“主机”,而输入设备和输出设备合称为“外部设备”。
1.3 描述计算机的发展过程及应用范围?解:电子数字计算机从1946年第一台ENIAC机至今可分为4代:第一代——电子管计算机;第二代——晶体管计算机第三代——集成电路计算机第四代——大规模和超大规模集成电路计算机应用范围1.4 计算机软件的组成?并举例说明。
解:计算机的主要应用领域包括:数值计算、数据处理、计算机控制、计算机辅助设计/计算机辅助制造和人工智能等。
1.5 说明计算机系统的层次结构及各层次结构的特点?解:计算机系统的层次结构共分8级,从L0~L7,其中:L0为硬联逻辑,实现微指令的控制时序,是计算机系统硬件的内核;L1为微程序控制,根据机器指令配备一套微指令,给出微操作控制信号;L2为机器语言级计算机,该级的机器语言就是该计算机的指令系统;L3为操作系统,为用户提供一个操作环境;L4为汇编语言级计算机,该级的机器语言是汇编语言,由相应级的计算机进行解释、执行;L5为高级语言类计算机,该级的机器语言是各种高级语言,该级计算机基本上脱离了物理计算机,供程序员使用;L6 为应用语言计算机,该级的机器语言是面向非计算机专业人员直接使用的应用语言;L7为应用系统分析和设计,是系统总体分析级,用以建立数学模型和算法,确定系统配置。
第2章运算基础----数值的机器级表示2.1 写出下列十进制数的8位二进制补码表示(1) 54 (2) 37(3) 111 (4) 253(5) 0.1 (6) 0.63(7) 0.34 (8) 0.21解:(1)+54 = 00110110B (32+16+6)(2)+37 = 00100101B (32+5)(3)+111 = 01101111B (64+32+15)(4)+253 =0 11111101B (255-2) 超过8位补码范围(5)+0.1 = 0.0001101 (0.1 = 12.8/128 = 13/128 )(6)+0.63 = 0.1010001B (0.63=80.6/128=81 /128)(7)+0.34 = 0.0101100 (0.34 = 43.52/128 =44/ 128)(8)+0.21 = 0.0011011 (0.21 = 26.88 / 128= 27 /128)2.2 转换下列二进制数为十进制数(1) 10111101 (2) 10001001(3) 0.1011111 (4) 0.0011010(5) 10011001.110011 (6) 111000111解:(1)10111101 = 189 (255-64-2)(2)10001001 = 137 (128+9)(3)0.1011111 = 95 / 128 =0.7421875 ( (127-32)/ 128 )(4)0.0011010 = 13 / 64 = 0.203125(5)10011001 .110011 = 153 +51/64 = 153.796875 ( 153 = 128+16+9 ,51/64 = (63-12)/64 )(6)111000111 = 455 (455 = 511-32-16-8)2.3 写出下列带符号数的原码、反码、补码和移码表示(用8位二进制代码表示)(1) +112 (2) 0.625(3) –124 (4) –0.375(5) +197 (6)+0.8125(7) –6 (8) -0.3125(9) —127 (10) —1解:(1) +112 = 127-15[ +112 ]原= 01110000B[ +112 ]反= 01110000B[ +112 ]补= 01110000B[ +112 ]移= 11110000B(2) 0.625 = 0.1010000B[ 0.625 ]原=[ 0.625 ]反=[ 0.625 ]补=0.1010000B 小数无移码(3) –124 =-(127-3) =-1111100B[-124 ]原= 11111100B[-124 ]反= 10000011B[-124 ]补= 10000100B[-124 ]移= 10000100B(4) –0.375 =-48/128 =-0.0110000B[-0.375 ]原=1.0110000B[-0.375 ]反=1.1001111B[-0.375 ]补=1.1010000B小数无移码(5) +197超过8位范围。
无法表示。
(6) +0.8125 =104/128 =0.1101000B[+0.8125]原=[+0.8125]反=[+0.8125]补= 0.1101000B小数无移码(7) –6[-6 ]原= 10000110B[-6 ]反= 11111001B[-6 ]补= 11111010B[-6 ]移= 01111010B(8) -0.3125 = -40/128 =-0.0101000[-0.3125 ]原=1. 0101000B[-0.3125 ]反=1.1010111B[-0.3125 ]补=1.1011000B小数无移码(9) —127= -1111111[—127]原= 11111111B[—127]反= 10000000B[—127]补= 10000000B[—127]移= 00000000B(10) —1[—1]原= 10000001B[—1]反= 11111110B[—1]补= 11111111B[—1]移= 01111111B2.4 给出以下机器数,求其真值(用二进制和十进制数表示)(1) [x]原=00100111 (2) [x]补=10101101.(3) [x]补=01000110 (4) [x]原=10101101(5) [x]移=01000110 (6) [x]移=11010011解:(1) X =+0100111B=+(32+7) =+39(2) [x]补=10101101B[x]原=11010011BX=-1010011B =-( 64+16+3)=-83(3) X = +1000110B=64+6 =+70(4) [X]原=10101101BX=-0101101B =-(32+13) =-45(5) [x]移=01000110[x]补=11000110X=-0111010=-58(6) [x]移=11010011[x]补=01010011X=1010011=832.5 已知生成多项式为x4+x+1 ,有效信息为10101011,求CRC校验码。
解:信息——数据字块M = 10101011(共8位)除数代码为G = 10011 即生成多项式G(X)= x4+x+1求循环冗余校验码二进制除法过程如下:10110110100111010101100001001111001100111010110011110001001110110100111010此余数即所求之循环冗余码。
R = 1010得循环冗余校验码CRC为1010101110102.6已知生成多项式为x4+x+1 ,有效信息为100101011,求CRC校验码。
解:信息——数据字块M = 100101011(共9位)除数代码为G = 10011 即生成多项式G(X)= x4+x+1求循环冗余校验码二进制除法过程如下:10001100110011 10010101100001001111011100111000010011110001011此余数即所求之循环冗余码。
R = 1011得循环冗余校验码CRC为10010101110112.7已知生成多项式为x4+x+1,接收到的CRC校验码为1001010111101,请检查有无出错解:循环冗余校验码CRC为1001010111101除数为10011进行CRC检查10001100110011 100101011110110011110111001110001100111010110011110R=110有错2.8已知生成多项式为x4+x+1,接收到的CRC校验码为1001010111010,请检查有无出错解:循环冗余校验码CRC为1001010111010除数为10011进行CRC检查10001100110011 10010101110101001111011100011001110010100111R=1有错第3章数值的机器运算3.1 已知[x]补和[y]补的值,用补.码加减法计算x+y和x-y(写出结果的二进制表示和十进制表示),并指出结果是否溢出以及溢出的类型(建议采用变形补码什算)。
(1) [x]补=0.11011 , [y]补=0.00011(2) [x]补=0.10111 [y]补=1.00101(3) [x]补=1.01010 [y]补=1.10001(4) [x]补=1.10011 [y]补=0.11001解:(1) [x]补=0.11011 , [y]补=0.00011[-y]补=1.11101[X+Y]补=[x]补+[y]补= 00.11011+ 00.00011__________________00.11110X+Y= +15/16 =+0.1111B[X-Y]补=[x]补+[-y]补=00.11011+11.11101__________________00.11000X-Y= +12/16 =+3/4=+0.11B检验【X= + 27/ 32Y= +3/32X+Y = +(27+3)/32 =+30/32=0.11110BX-Y = (27-3)/32=+24/32=+3/4=0.11B 】(2) [x]补=0.10111 , [y]补=1.00101[Y]原=1.11011[-y]补=0.11011[X+Y]补=[x]补+[y]补= 00.10111+ 11.00101__________________11.11100X+Y=-0.001B=-1/8[X-Y]补=[x]补+[-y]补= 00.10111+00.11011________________01.10010 (上溢)[X-Y]补=1.10010 (上溢)【修正:X-Y=-0.01110 = -7 / 16+2 = 25 / 16 】检验【X= +23/ 32Y=-27/32X+Y = (23-27)/32 =-4/32=-1/8X-Y = (23+27)/32=+50/32 =25/16 (上溢) 】(3) [x]补=1.01010 , [y]补=1.10001[-y]补=0.01111[X+Y]补=[x]补+[y]补= 11.01010+ 11.10001__________________10.11011X+Y=0.11011B=+27/32[ 修正27/32-2=27-64=-37/32 ][X-Y]补=[x]补+[-y]补= 11.01010+ 00.01111________________11.11001X-Y=-0.00111B=-7/32检验【X= -22/ 32=-11/16Y=-15/32X+Y = (-15-22) /32 =-37/32 (下溢)X-Y = (-22-(-15)) / 32 =-7/32 】(4) [x]补=1.10011 , [y]补=0.11001[ X= -0.01101=-13/ 32Y= +0.11001=25/32X+Y = (-13+25)/32 =12/32=3/8X-Y = (-13-25)/32=-38/32 = -19 / 16 (下溢) ][-y]补=1.00111[X+Y]补=[x]补+[y]补= 11.10011+ 00.11001__________________00.01100X+Y=0.01100B=3/8[X-Y]补=[x]补+[-y]补= 11.10011+ 11.00111________________10.11010 (下溢)[X-Y]补=0.11010 (下溢)【修正:X-Y = 13 / 16 – 2 = -19 / 16 】检验【X= -0.01101=-13/ 32Y= +0.11001=25/32X+Y = (-13+25)/32 =12/32=3/8X-Y = (-13-25)/32=-38/32 = -19 / 16 (下溢) 】3.2 给出x和y的二进制值,用补码加减法计算x+y和x-y(写出结果的二进制表示和十进制表示),并指出结果是否溢出以及溢出的类型(建议采用变形补码什算)、(1) x=0.10111 y=0.11011 (2) x=0.11101 y=0.10011(3) x=0.11011 y=-0.1010 (4) x=-0.11111 y=0.11011 (5) x=-0.11011 y=0.1010 (6) x=-0.11010 y=-0.11001 (7) x=-1011101 y=+1101101 (8) x=+1110110 y=-1001101 (9) x=+1101110 y=+1010101 (10) x=-1111111 y=-1101101 解:(1)X=0.10111 Y=0.11011[X]补=0.10111[Y]补=0.11011[-Y]补=1.00101[X+Y]补=[X]补+[Y]补= 00.10111+ 00.11011_______________________01.10010 (上溢)X+Y 上溢[X-Y]补=[X]补-[Y]补= 00.10111+ 11.00101_________________________11.11100X-Y=-0.00100=-1/8检验【X=23/32 Y=27/32X+Y=50/32[ 修正:X+Y=-0.0111 =-7 / 16 +2 =25 / 16 ]X-Y=-1/8】(2)X=0.11101Y=0.10011[X]补=0.11101[Y]补=0.10011[-Y]补=1.01101[X+Y]补=[X]补+[Y]补= 00.11101+ 00.10011_______________________01.10000 (上溢)X+Y 上溢[X-Y]补=[X]补-[Y]补= 00.11101+ 11.01101_________________________00.01010X-Y=0.01010=5/16检验【X=29/32 Y=19/32X+Y=48/32 =3 / 2[ 修正:X+Y = -0.1 = -1 / 2+2 =1.5 ] X-Y=10/32=5 / 16】(3)X=0.11011Y=-0.1010[X]补=0.11011[Y]补=1.01100[-Y]补=0.10100[X+Y]补=[X]补+[Y]= 00.11011+ 11.01100_______________________00.00111X+Y =7/32[X-Y]补=[X]补-[Y]补= 00.11011+ 00.10100_________________________01.01111X-Y=-0.10001=-17/32 (上溢)[ 修正-17/32+2=47/32 ]检验【X=27/32 Y=-20/32X+Y=7/32X-Y=47/32】(4)X=-0.11111 Y=0.11011[X]补=1.00001[Y]补=0.11011[-Y]补=1.00101[X+Y]补=[X]补+[Y]补= 11.00001+ 00.11011_______________________11.11100X+Y =-0.00100=-1/8[X-Y]补=[X]补-[Y]补= 11.00001+ 11.00101_________________________10.00110 (下溢)X-Y=0.00110=3/16 (下溢)[ 修正6/32-2=58/32 =29/16 ]检验【X=-31/32 Y=27/32X+Y=-4/32 =-1/8X-Y=58/32=29/16】(5)X=-0.11011 Y=0.10100[X]补=1.00101[Y]补=0.10100[-Y]补=1.01100[X+Y]补=[X]补+[Y]补= 11.00101+ 00.10100_______________________11.11011X+Y =-0.00111=-7/32[X-Y]补=[X]补-[Y]补= 11.00101+ 11.01100_________________________10.10001 (下溢)X-Y=17/32 (下溢)[ 修正17/32-2=-47/32 ]检验【X=-27/32 Y=20/32X+Y=-7/32X-Y=-47/32】(6)X=-0.11010 Y=-0.11001[X]补=1.00110[Y]补=1.00111[-Y]补=0.11001[X+Y]补=[X]补+[Y]补= 11.00110+ 11.00111_______________________10.01101X+Y =13/32 (下溢) [ 修正13/32-2=-51/32 ] [X-Y]补=[X]补-[Y]补= 11.00110+ 00.11001_________________________11.11111X-Y=-0.00001= -1/32检验【X=-26/32 Y=-25/32X+Y=-51/32X-Y=-1/32】(7) X=-1011101 Y=+1101101[X]补=10100011[Y]补=01101101[-Y]补=1.01100[X+Y]补=[X]补+[Y]补= 110100011+ 001101101_______________________000010000X+Y =00010000=16[X-Y]补=[X]补-[Y]补= 110100011+ 110010011_________________________100110110 (下溢)X-Y=54 (下溢)[ 修正54-256=-202 ]检验【X=-93 Y=109X+Y=16X-Y=-202】(8) X=+1110110 Y=-1001101[X]补=01110110[Y]补=10110011[-Y]补=01001101[X+Y]补=[X]补+[Y]补= 001110110+ 110110011_______________________000101001X+Y =41[X-Y]补=[X]补-[Y]补= 0011101101+ 001001101_________________________011000011 (上溢)X-Y=-61 (上溢)[ 修正-61+256=195 ]检验【X=118 Y=-77X+Y=41X-Y=195】(9)X=+1101110 Y=+1010101[X]补=01101110[Y]补=01010101[-Y]补=10101011[X+Y]补=[X]补+[Y]补= 001101110+001010101_______________________011000011 (上溢)X+Y =-0111101=-61 [ 修正-61+256=195 ] [X-Y]补=[X]补-[Y]补= 001101110+ 110101011_________________________000011001X-Y=25检验【X=110 Y=85X+Y=195X-Y=25】(10) X=-1111111 Y=-1101101[X]补=10000001[Y]补=10010011[-Y]补=01101101[X+Y]补=[X]补+[Y]补= 110000001+ 110010100_______________________100010100 (下溢)X+Y =00010100=20 [ 修正20-256=-236 ][X-Y]补=[X]补-[Y]补= 110000001+ 001101101_________________________111101110检验【X-Y=-0010010=-18X=-127 Y=-109X+Y=-236X-Y=-18】3.3 给出x和y的二进制值,试用原码一位乘法求X×Y,(写出结果的二进制表示和十进制表示,要求写出运算过程),(1)X=+0100,Y=-0011 (2)X=+0.0101,Y=-0. 1010,(3)X = +1001,Y =-1101(4)X=+0.1011,Y=-0.1101(5)X=-1010,Y=+1011 (6) X=0.1001,Y=-0.0101(7)X=-1010,Y=+1101 (8) X=-0.0110,Y=+0.0101(9)X=+10101,Y=-10011(10)X=-0.10111,Y=+0.10101 解:(1)X=+0100,Y=-0011按乘法规则,符号位Zs =Xs ○+Ys =0○+1=1;绝对值相乘如下0 0 0 0 0 0 1 1部分积初值=1,加上被乘数|X|0 1 0 0 Y40 1 0 0 0 0 1 1 第一次部分积0 0 1 0 0 0 0 1 右移一位=1,加加上被乘数|X|0 1 0 0 Y30 1 1 0 0 0 0 1 第二次部分积0 0 1 1 0 0 0 0右移一位=0,加00 0 0 0 Y20 0 1 1 0 0 0 0 第三次部分积0 0 0 1 1 0 0 0右移一位0 0 0 0 Y=0,加010 0 0 1 1 0 0 0 第四次部分积0 0 0 0 1 1 0 0 右移一位得乘积= 1 0 0 0 0 1 1 0 0得:[Z]原Z = - 0 0 0 0 1 1 0 0 B = - 1`2(2)X=+0.0101,Y=-0. 1010按乘法规则,符号位Zs =Xs ○+Ys =0○+1=1;绝对值相乘如下0 0 0 0 1 0 1 0部分积初值=0,加00 0 0 0 Y30 0 0 0 1 0 1 0 第一次部分积0 0 0 0 0 1 0 1右移一位=1,加上被乘数|X|0 1 0 1 Y20 1 0 1 0 1 0 1 第二次部分积0 0 1 0 1 0 1 0右移一位=0,加00 0 0 0 Y30 0 1 0 1 0 1 0 第三次部分积0 0 0 1 0 1 0 1右移一位0 1 0 1 Y=1,加上被乘数|X|1011 0 0 1 0 1第四次部分积0 0 1 1 0 0 1 0 右移一位得乘积= 1. 0 0 1 1 0 0 1 0得:[Z]原Z = - 0. 0 0 1 1 0 0 1 0 B = - 50 / 256(3)X = +1001,Y =-1101按乘法规则,符号位Zs =Xs ○+Ys =0○+1=1;绝对值相乘如下0 0 0 0 1 1 0 1部分积初值1 0 0 1 Y=1,加上被乘数|X|41 0 0 11 1 0 1第一次部分积0 1 0 0 11 1 0右移一位=0,加00 0 0 0 Y30 1 0 0 11 1 0第二次部分积0 0 1 0 0 11 1右移一位=1,加上被乘数|X|1 0 0 1 Y41 0 1 1 0 1 1 1 第三次部分积0 1 0 1 1 0 1 1右移一位=1,加上被乘数|X|1 0 0 1Y41 1 1 0 1 0 1 1第四次部分积0 1 1 1 0 1 0 1 右移一位得乘积得:[Z]= 1 0 1 1 1 0 1 0 1原Z = - 0 1 1 1 0 1 0 1 B = - 117(4)X=+0.1011,Y=-0.1101按乘法规则,符号位Zs =Xs ○+Ys =0○+1=1;绝对值相乘如下0 0 0 0 1 1 0 1部分积初值=1,加上被乘数|X|1 0 1 1 Y41 0 1 1 1 1 0 1 第一次部分积0 1 0 1 1 1 1 0 右移一位0 0 0 0 Y=0,加030 1 0 1 1 1 1 0 第二次部分积0 0 1 0 1 1 1 1 右移一位=1,加上被乘数|X|1 0 1 1 Y21 1 0 1 1 1 1 1 第三次部分积0 1 1 0 1 1 1 1右移一位=1,加上被乘数|X|1 0 1 1 Y11 0 0 0 1 1 1 1 1 第四次部分积1 0 0 0 1 1 1 1 右移一位得乘积= 1.10001111得:[Z]原Z = - 0. 10001111 B = - 143(5)X=-1010,Y=+1011按乘法规则,符号位Zs =Xs ○+Ys =1○+0=1;绝对值相乘如下0 0 0 0 1 0 1 1部分积初值=1,加上被乘数|X|1 0 1 0 Y41 0 1 01 0 1 1 第一次部分积0 1 0 1 01 0 1右移一位=1,加上被乘数|X|1 0 1 0Y41 1 1101 0 1 第二次部分积0 1 1 1 1 01 0右移一位=0,加00 0 0 0Y40 1 1 1 1 01 0 第三次部分积0 0 1 1 1 1 01右移一位1 0 1 0Y=1,加上被乘数|X|41 1 011 1 01 第四次部分积0 1 1 0 1 1 1 0 右移一位得乘积得:[Z]= 1 0 1 1 0 1 1 1 0原Z = - 0 1 1 0 1 1 1 0 B = - 110(6) X=0.1001,Y=-0.0101按乘法规则,符号位Zs =Xs ○+Ys =0○+1=1;绝对值相乘如下0 0 0 0 0 1 0 1部分积初值1 0 0 1 Y=1,加上被乘数|X|41 0 0 10 1 0 1 第一次部分积0 1 0 0 1 0 1 0右移一位=0,加00 0 0 0 Y30 1 0 0 1 0 1 0 第二次部分积0 0 1 0 0 1 0 1右移一位1 0 0 1 Y=1,加上被乘数|X|21 01 1 0 1 0 1 第三次部分积0 1 0 1 1 0 1 0右移一位0 0 0 0Y=0,加030 1 0 1 1 0 1 0 第四次部分积00 1 0 1 1 0 1 右移一位得乘积= 1. 0 0 1 0 1 1 0 1得:[Z]原Z = -0 . 0 0 1 0 1 1 0 1 B = - 45 /256(7)X=-1010,Y=+1101按乘法规则,符号位Zs =Xs ○+Ys =1○+0 =1;绝对值相乘如下0 0 0 0 1 1 0 1部分积初值1 0 1 0 Y=1,加上被乘数|X|41 0 1 01 1 0 1 第一次部分积0 1 0 1 01 1 0右移一位0 0 0 0 Y=0,加030 1 0 1 01 1 0 第二次部分积0 0 1 0 1 01 1右移一位=1,加上被乘数|X|1 0 10Y41 10010 1 1 第三次部分积0 1 1 0 0 1 01右移一位=1,加上被乘数|X|1 0 10Y4100000101第四次部分积1 0 0 0 0 0 1 0 右移一位得乘积= 1 1 0 0 0 0 0 1 0得:[Z]原Z = - 1 0 0 0 0 0 1 0 B = - 130(8) X=-0.0110,Y=+0.0101按乘法规则,符号位Zs =Xs ○+Ys =1○+0=1;绝对值相乘如下0 0 0 0 0 1 0 1部分积初值=1,加上被乘数|X|01 1 0 Y40 1 1 00 1 0 1 第一次部分积0 0 1 1 0 0 1 0右移一位0 0 0 0 Y=0,加030 0 1 1 0 0 1 0 第二次部分积0 0 0 1 1 0 0 1右移一位0 1 1 0 Y=1,加上被乘数|X|20 1 1 1 1 0 0 1 第三次部分积0 0 1 1 1 1 0 0右移一位0 0 00Y=0,加030 0 111 1 0 0 第四次部分积00 0 1 1 1 1 0 右移一位得乘积= 1. 0 0 0 1 1 1 1 0得:[Z]原Z = -0. 0 0 0 1 1 1 1 0 B = - 30 / 256(9)X=+10101,Y=-10011按乘法规则,符号位Zs =Xs ○+Ys =0○+1=1;绝对值相乘如下0 0 0 0 0 1 0 0 1 1部分积初值10101 Y=1,加上被乘数|X|410101 1 0 0 1 10 10101 1 0 0 1右移一位=1,加上被乘数|X|10101Y41 1 1 1 11 10 0 1 第二次部分积0 1 1 1 11 1 1 0 0右移一位=0,加00 0 0 0 0Y40 1 1 1 1 1 1 1 00 第三次部分积0 0 1 1 1 1 1 1 1 0右移一位00000Y=0,加040 01 1 1 1 1 1 1 0 第四次部分积0 0 01 1 1 1 1 1 1右移一位10101Y=1,加上被乘数|X|41 100 0 1 1 1 1101 1 0 0 0 1 1 1 1 右移一位得乘积= 1 0 1 1 0 0 0 1 1 1 1得:[Z]原Z = - 0 1 1 0 0 0 1 1 1 1 = - 399(10)X=-0.10111,Y=+0.10101101 1 1按乘法规则,符号位Zs =Xs ○+Ys =1○+0=1;绝对值相乘如下0 0 0 0 0 1 0 101部分积初值101 1 1 Y=1,加上被乘数|X|4101111 0 1 0 10 101 1 1 1 0 1 0右移一位=0,加00 0 0 0 0Y40 101 1 1 1 0 1 0 第二次部分积0 0 101 1 1 1 0 1右移一位=1,加上被乘数|X|101 1 1Y41 1 1 001 1 1 0 1 第三次部分积0 1 1 1 0 0 1 1 1 0右移一位=0,加00 0 0 0 0Y40 1 1 1 0 0 1 1 1 0 第四次部分积0 0 1 1 1 0 0 1 11右移一位101 1 1Y=1,加上被乘数|X|41 1 11 0 0 0 1 110 1 1 1 1 0 0 0 1 1 右移一位得乘积得:[Z]= 1.0 1 1 1 1 0 0 0 1 1原Z = - 0 . 0 1 1 1 1 0 0 0 1 1 B = - 483 / 10243.4 给出x和y的二进制值,试用补码一位乘法求X×Y,(写出结果的二进制表示和十进制表示,要求写出运算过程),(1)X=+0100,Y=-0011 (2)X=+0.0101,Y=-0. 1010,(3)X = +1001,Y =-1101 (4)X=+0.1011,Y=-0.1101(5)X=-1010,Y=+1011 (6) X=0.1001,Y=-0.0101(7)X=-1010,Y=+1101 (8) X=-0.0110,Y=+0.0101(9)X=+10101,Y=-10011 (10)X=-0.10111,Y=+0.10101(1)X=+0100,Y=-0011解:【X】补= 00 0100 , 【Y】补 = 11 1101 , 【-X】补 = 11 110000 0000 1. 11010 加【-X】补加【-X】补 11 1100_______________________= 11 110011 1110 0 11101 加【X】补加【X】补 00 0100______________________= 00 001000 000100 1110 加【-X】补加【-X】补11 1100_______________________= 111101111110 100 111 加0加0 000000________________________= 11 111011 11110100 11 加0加0 00 0000________________________= 11 1111【X】补×【Y】补 = 11.11110100X×Y = -0.00001100 B = -12 / 256(2)X=+0.0101,Y=-0. 1010,解:【X】补= 00.0101 , 【Y】补 = 11.0110 , 【-X】补 = 11.101100.0000 1. 01100 加0+0 00.0000_______________________= 00.000000.0000 0 10110 加【-X】补加【-X】补 11.1011______________________= 11.101111.1101 10 1011 加0加0 00.0000_______________________= 11.110111.1110 110 101 加【X】补加【X】补 00.0101________________________= 00.001100.0001 1110 10 加【-X】补加【-X】补11.1011________________________= 11.1100【X】补×【Y】补 = 11.11001110X×Y = -0.00110010 B = -50 / 256(3)X = +1001,Y =-1101解:【X】补= 00 1001 , 【Y】补 = 11 0011 , 【-X】补 = 11 011100 0000 1. 00110 加【-X】补加【-X】补 11 0111_______________________= 11 011111 1011 1 10011 加0加0 00 0000______________________= 11 101111 1101 11 1001 加【X】补加【X】补 00 1001_______________________= 00 0110000011011 100 加0加0 00 0000________________________= 00 001100 0001101110加【-X】补加【-X】补 11 0111________________________= 11 1000【X】补×【Y】补 = 11.10001011X×Y = -0.01110101 B = -117 / 256(4)X=+0.1011,Y=-0.1101解:【X】补= 00.1011 , 【Y】补 = 11.0011 , 【-X】补 = 11.010100.0000 1. 00110 加【-X】补+【-X】补 11.0101_______________________= 11.010111.1010 1 10011 加0+ 0 00.0000______________________= 11.101011.1101 01 1001 加【X】补【X】补 00.1011_______________________= 00.100000.0100 001 100 加0+0 00.0000________________________= 00.010000.0010 0001 10加【-X】补加【-X】补11.0101________________________= 11.0111【X】补×【Y】补 = 11.01110001X×Y = -0.10001111 B = -143 / 256(5)X=-1010,Y=+1011解:【X】补= 11 0110 , 【Y】补 = 00 1011 , 【-X】补 = 00 101000 0000 0. 10110 加【-X】补加【-X】补 00 1010_______________________= 00 101000 0101 0 01011 加0加0 00 0000______________________= 00 010100 0010 100101 加【X】补加【X】补 11 0110_______________________= 11100011 1100 010010 加【-X】补加【-X】补00 1010________________________= 00 011000 0011001001 加【X】补加【X】补 11 0110________________________= 11 1001【X】补×【Y】补 = 11. 10010010X×Y = -0.01101110 B = -110 / 256(6) X=0.1001,Y=-0.0101解:【X】补= 00.1001 , 【Y】补 = 11.1011 , 【-X】补 = 11.011100.0000 1. 10110 加【-X】补+【-X】补 11.0111_______________________= 11.011111.1011111011 加0+ 0 00.0000______________________= 11.101111.110111 1101 加【X】补【X】补 00.1001_______________________= 00.011000.0011011 110 加【-X】补+【-X】补 11.0111________________________= 11.101011.11010011 11加0加0 00.0000________________________= 11.1101【X】补×【Y】补 = 11.11010011X×Y = -0.00101101 B = - 45 / 256(7)X=-1010,Y=+1101解:【X】补= 11 0110 , 【Y】补 = 00 1101 , 【-X】补 = 00 101000 0000 0. 11010 加【-X】补加【-X】补 00 1010_______________________= 00 101000 0101 0 01101 加【X】补加【X】补11 0110______________________= 111011111101 10 0110 加【-X】补加【-X】补 00 1010_______________________= 000111000011110 011 加0加0 00 0000________________________= 00 001100 00011110 01 加【X】补加【X】补 11 0110________________________= 11 0111【X】补×【Y】补 = 11. 01111110X×Y = -0.10000010 B = -130 / 256(8) X=-0.0110,Y=+0.0101解:【X】补= 11.1010 , 【Y】补 = 00. 0101 , 【-X】补 = 00.011000.0000 0. 01010 加【-X】补+【-X】补 00.0110_______________________= 00.011000.0011 0 00101 加【X】补+【X】补 11.1010______________________= 11.110111.1110 10 0010 加【-X】补【-X】补 00.0110_______________________= 00.010000.0010 010 001 加【X】补+0 【X】补 11.1010________________________= 11.110011.1110 0010 00 加0+0 00.0000________________________= 11.1110【X】补×【Y】补 = 11.11100010X×Y = -0.00011110 B = - 30 / 256(9)X=+10101,Y=-10011解:【X】补= 00 10101 , 【Y】补 = 11 01101 , 【-X】补 = 11 0101100 00000 1 011010 加【-X】补+【-X】补 11 01011_______________________= 11 0101111 10101 1 101101 加【X】补+【X】补 00 10101______________________= 00 0101000 00101 01 10110 加【-X】补【-X】补 11 01011_______________________= 11 1000011 11000 001 1011 加0+000 00000________________________= 11 1100011.11100 0001 101 加【X】补+【X】补 00 10101________________________= 00 1000100.010******* 10 加【-X】补+【-X】补 11 01011________________________= 11.10011【X】补×【Y】补 = 11.1001110001X×Y = Z = - 0 . 0110001111 B = - 399/ 1024(10)X=-0.10111,Y=+0.10101解:【X】补= 11.01001 , 【Y】补 = 00.10101 , 【-X】补 = 00.1011100.00000 0.101010 加【-X】补+【-X】补 00.10111_______________________= 00.1011100.010111 010101 加【X】补+【X】补 11.01001______________________= 11.1010011.1101001 01010 加【-X】补【-X】补 00.10111_______________________= 00.1000100.01000 101 0101 加【X】补+【X】补 11.01001________________________= 11.1000111.11000 1101 010 加【-X】补+【-X】补 00.10111________________________= 00.01111 00.001111110101 加【X 】补 + 【X 】补 11.01001________________________= 11.10000【X 】补× 【Y 】补 = 11.1000011101X ×Y = Z = - 0 .0111100011 B = - 483 / 10243.5 给出x 和y 的二进制值,试用原码恢复余数法计算X/Y ,(写出结果的二进制表示和十进制表示,要求写出运算过程),(1)X=-1010,Y=+1011 (2)X =+0.10101,Y =-0.10011(3)X = +1001,Y =-1101 (4) X=0.1000,Y=-0.1010解:(1)X=-1010,Y=+1011|X |=1010|Y |= 1011用双符号位表示[|X |]原 = 001010 [|Y |] 原 = 001011按除法规则,符号位Zs=Xs ○+Ys= 1○+0 =1[|Y |]变补= 110101绝对值相除如下:被除数 001010 上商 说 明加[|Y |]变补+)110101111111 0 余数为负加[|Y |] 原 +)001011 恢复余数001010左移一位 010100加[|Y |]变补 +) 110101001001 1 余数为正左移一位 010010加[|Y |]变补 +) 110101000111 1 余数为正左移一位 001110加[|Y |]变补 +)110101000011 1 余数为正左移一位 000110加[|Y|]变补+) 1101011110110余数为负加[|Y|]原+)001011 恢复余数————————000110结果商为Z=-0.1110,余数R=-0110 × 2-4解:(2)X=+0.10101,Y=-0.10011|X|=0. 10101|Y|= 0.10011用双符号位表示因|X|≧|Y|令 Y = 0.100110 X1=X/2 = 0.010101[|X1|]原 = 00.010101 [|Y|]原= 00.100110按除法规则,符号位Zs=Xs○+Ys= 0○+ 1 = 1[|Y|]变补= 11.011010绝对值相除如下:被除数 00010101 上商说明加[|Y|]变补+)11011010111011110余数为负加[|Y|]原00100110 恢复余数————————00010101左移一位00101010加[|Y|]原+ 11011010000001001余数为正左移一位 00001000[|Y|]原+)1101101011100010 0余数为负加[|Y|]原00100110 恢复余数————————00001000左移一位00010000加[|Y |]变补 +)11011010111010100 余数为负加[|Y |00100110恢复余数————————00010000左移一位 00100000加[|Y |]变补 +)11011010————————111110100 余数为负加[|Y |] 原 00100110 恢复余数————————0010000001000000加[-Y]补 +)1101101000011010 1 余数为正00110100加[-Y]补+) 11011010000011101 余数为正结果商为[Z1]原 = 0.100011,余数R = 0.001110×2-6Z1 = 0.100011,余数R = 0.001110×2-4Z = 2 Z1商Z = - 1.00011,余数R = - 0.00111×2-5余数与被除数同号解:(3)X = +1001,Y =-1101|X |=1001|Y |= 1101用双符号位表示[|X |]原 = 001001 [|Y |] 原 = 001101按除法规则,符号位Zs=Xs ○+Ys= 0○+ 1 =1[|Y |]变补= 110011绝对值相除如下:被除数 001001 上商 说 明加[|Y |]变补 + 110011111100 0 余数为负加[|Y |] 原 +)001101 恢复余数001001左移一位 010010加[|Y |]变补 +) 1100110001011 余数为正左移一位 001010加[|Y |]变补 +) 110011111101 0 余数为负加[|Y |] 原 +) 001101 恢复余数001010左移一位 010100加[|Y |]变补 + )110011000111 1 余数为正左移一位 001110加[|Y |]变补 +) 1100110000011 余数为正结果商为Z=-0.1011,余数R=-0001 × 2-4解:(4) X=0.1000,Y=-0.1010|X |=0.1000|Y |= 0.1010用双符号位表示[|X |]原 = 00.1000 [|Y |] 原 = 00.1010按除法规则,符号位Zs=Xs ○+Ys= 0○+ 1 =1[|Y |]变补= 11.0110绝对值相除如下:被除数 00.1000 上商 说 明加[|Y |]变补 +)11.011011.1110 0 余数为负加[|Y |] 原 +)00.1010 恢复余数00.1000左移一位 01.0000加[|Y |]变补 +) 11.011000.0110 1 余数为正左移一位 00.1100加[|Y |]变补 +) 11.011000.00101 余数为正左移一位 00.0100加[|Y |]变补 + )11.011011.10100 余数为负加[|Y |] 原 +) 00.1010 恢复余数00.0100左移一位 00.1000加[|Y |]变补 +) 11.011011.1110 0 余数为负加[|Y |] 原 +)00.1010 恢复余数————————00.1000结果商为Z=-0.1100,余数R=-0.1000 × 2-43.6 给出x 和y 的二进制值,试用原码加减交替法计算X/Y ,(写出结果的二进制表示和十进制表示,要求写出运算过程),(1)X=-1010,Y=+1011 (2)X =+0.10101,Y =-0.10011(3)X = +1001,Y =-1101 (4) X=0.1000,Y=-0.1010用原码加减交替法求:[X]原/[Y]原解:(1)X=-1010,Y=+1011|X |=1010|Y |= 1011用双符号位表示[|X |]原 = 001010 [|Y |] 原 = 001011按除法规则,符号位Zs=Xs ○+Ys=1○+0 =1[|Y |]变补= 110101绝对值相除如下:被除数 001010 0.0000 说 明加[|Y |]变补 +) 110101 -|Y |1111110.0000 余数为负 ,商上0左移一位 111110 左移一位加|Y | +) 001011 +|Y |001001 0.0001 余数为正, 商上1左移一位 010010 左移一位加[|Y |]变补 +) 110101 -|Y |左移一位 001110 左移一位加[|Y|]变补+) 110101 -|Y|000011 0.0111余数为正,商上1左移一位 000110 左移一位加[|Y|]变补+) 110101-|Y|1110110.1110 余数为负, 商上0加|Y| +) 001011 最后一步余数为负需+|Y| 000110结果商为[Z]原= 0.1110,余数R = 00110×2-4Z = -0.1110,余数R =- 0.0110×2-4余数与被除数同号解:(2)X=+0.10101,Y=-0.10011|X|=0. 10101|Y|= 0.10011用双符号位表示因|X|≧|Y|令 Y = 0.100110 X1 = X / 2 = 0.010101[|X1|]原 = 00.010101 [|Y|]原= 00.100110按除法规则,符号位Zs=Xs○+Ys= 0○+ 1 = 1[|Y|]变补= 11.011010绝对值相除如下:被除数 00.010101 0.000000 说明加[|Y|]变补+) 11.011010 -|Y|11.101111 0.000000 余数为负,商上0左移一位 11.011110 左移一位加|Y| +) 00.100110 +|Y|00.000100 0.000001 余数为正, 商上1左移一位00.001000 左移一位加[|Y|]变补+)11.011010 -|Y|11.100010 0.000010 余数为负商上0左移一位 11.000100 左移一位加|Y| +) 00.100110+|Y|11.101010 0.000100 余数为负,商上0左移一位11.010100 左移一位加|Y| +) 00.100110+|Y|左移一位 11.110100 左移一位 加|Y | +) 00.100110 +|Y |00.011010 0. 010001余数为正, 商上1左移一位 00.110100 左移一位加[|Y |]变补 +)11.011010-|Y |00.001110 0.100011 余数为正, 商上1结果商为[Z1]原 = 0.100011,余数R = 0.001110×2-6Z1 = 0.100011,余数R = 0.001110×2-6Z1 = 2 ZZ = - 1.00011,余数R = - 0.00111×2-5余数与被除数同号解:(3)X = +1001,Y =-1101|X |=1001|Y |= 1101用双符号位表示[|X |]原 = 001001 [|Y |] 原 = 001101按除法规则,符号位Zs=Xs ○+Ys= 0○+ 1 =1[|Y |]变补= 110011绝对值相除如下:被除数 001001 0.0000 说 明 加[|Y |]变补 +) 110011 -|Y |111100 0.0000 余数为负 ,商上0 左移一位 111000 左移一位加|Y | +) 001101 +|Y |000101 0.0001 余数为正, 商上1 左移一位 001010 左移一位加[|Y |]变补 +) 110011 -|Y |111101 0.0010 余数为负,商上0左移一位 111010 左移一位加|Y |+)001101+|Y |000111 0.0101 余数为正,商上1 左移一位 001110 左移一位加[|Y |]变补 +)110011 -|Y |000001 0.1011余数为正,商上1结果商为[Z]原 =001011,余数R = 000001×2-4Z = -0.1011, 余数R =- 0.0001×2-4余数与被除数同号解:(4) X=0.1000,Y=-0.1010 |X |=0.1000|Y |= 0.1010 用双符号位表示[|X |]原 = 00.1000 [|Y |] 原 = 00.1010 按除法规则,符号位Zs=Xs ○+Ys= 0○+ 1 =1 [|Y |]变补= 11.0110 绝对值相除如下:被除数 00.1000 0.0000 说 明 加[|Y |]变补 +) 11.0110 -|Y |11.1110 0.0000 余数为负 ,商上0 左移一位 11.1100 左移一位 加|Y | +) 00.1010 +|Y |00.0110 0.0001 余数为正, 商上1 左移一位 00.1100 左移一位 加[|Y |]变补 +)11.0110 -|Y |00.0010 0.0011 余数为正,商上1 左移一位 00.0100 左移一位 加[|Y |]变补 +) 11.0110 -|Y | 11.1010 0.0110 余数为负,商上0左移一位 11.0100 左移一位 加|Y | +) 00.1010+|Y | 11.1110 0.1100余数为负, 商上0加|Y | +) 00.1010 最后一步余数为负需+|Y | 00.1000结果商为[Z]原 = 0.1100,余数R = 0.10000×2-4Z = -0.1100, 余数R =- 0.1000×2-4余数与被除数同号3.7 给出x 和y 的二进制值,试用补码加减交替法计算X/Y ,(写出结果的二进制表示和十进制表示,要求写出运算过程),(1)X=-1010,Y=+1011 (2)X =+0.10101,Y =-0.10011。