第二章运算方法和运算器习题参考答案 1.docx
- 文档编号:14339788
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:10
- 大小:50.18KB
第二章运算方法和运算器习题参考答案 1.docx
《第二章运算方法和运算器习题参考答案 1.docx》由会员分享,可在线阅读,更多相关《第二章运算方法和运算器习题参考答案 1.docx(10页珍藏版)》请在冰点文库上搜索。
第二章运算方法和运算器习题参考答案1
1.写出下列各数的原码、反码、补码、移码表示(用8位二进制数)。
其中MSB是最高位(又是符号位)LSB是最低位。
如果是小数,小数点在MSB之后;如果是整数,小数点在LSB之后。
(1)-35/64
(2)23/128(3)-127(4)用小数表示-1(5)用整数表示-1
解:
(1)先把十进制数-35/64写成二进制小数:
(-35/64)10=(-100011/1000000)2=(-100011×2-110)2=(-0.100011)2
令x=-0.100011B
∴[x]原=1.1000110(注意位数为8位)[x]反=1.0111001
[x]补=1.0111010 [x]移=0.0111010
(2)先把十进制数23/128写成二进制小数:
(23/128)10=(10111/10000000)2=(10111×2-111)2=(0.0001011)2
令x=0.0001011B
∴[x]原=0.0001011 [x]反=0.0001011
[x]补=0.0001011 [x]移=1.0001011
(3)先把十进制数-127写成二进制小数:
(-127)10=(-1111111)2
令x=-1111111B
∴[x]原=1.1111111 [x]反=1.0000000
[x]补=1.0000001 [x]移=1.0000001
(4)令x=-1.000000B
∴原码、反码无法表示
[x]补=1.0000000 [x]移=0.0000000
(5)令Y=-1=-0000001B
∴[Y]原=10000001 [Y]反=11111110
[Y]补=11111111 [Y]移=01111111
2.设[X]补=a0,a1,a2…a6,其中ai取0或1,若要x>-0.5,求a0,a1,a2,…,a6的取值。
解:
a0=1,a1=0,a2,…,a6=1…1。
3.有一个字长为32位的浮点数,阶码10位(包括1位阶符),用移码表示;尾数22位(包括1位尾符)用补码表示,基数R=2。
请写出:
(1)最大数的二进制表示;
(2)最小数的二进制表示;
(3)规格化数所能表示的数的范围;
(4)最接近于零的正规格化数与负规格化数。
解:
(1)11111111110111111111111111111111
(2)11111111111000000000000000000000
(3)11111111110111111111111111111111~01111111111000000000000000000000
(4)00000000000000000000000000000001~0000000000111111*********1111111
4.将下列十进制数表示成浮点规格化数,阶码3位,用补码表示;尾数9位,用补码表示。
(1)27/64
(2)-27/64
解:
(1)27/64=11011B×
=0.011011B=0.11011B×
浮点规格化数:
11110110110000
(2)-27/64=-11011B×
=-0.011011B=-0.11011B×
浮点规格化数:
11111001010000
5.已知X和Y,用变形补码计算X+Y,同时指出运算结果是否溢出。
(1)X=0.11011Y=0.00011
(2)X=0.11011Y=-0.10101
(3)X=-0.10110Y=-0.00001
解:
(1)先写出x和y的变形补码再计算它们的和
[x]补=00.11011[y]补=00.00011
[x+y]补=[x]补+[y]补=00.11011+00.00011=0.11110
∴x+y=0.1111B无溢出。
(2)先写出x和y的变形补码再计算它们的和
[x]补=00.11011[y]补=11.01011
[x+y]补=[x]补+[y]补=00.11011+11.01011=00.00110
∴x+y=0.0011B无溢出。
(3)先写出x和y的变形补码再计算它们的和
[x]补=11.01010[y]补=11.11111
[x+y]补=[x]补+[y]补=11.01010+11.11111=11.01001
∴x+y=-0.10111B无溢出
6.已知X和Y,用变形补码计算X-Y,同时指出运算结果是否溢出。
(1)X=0.11011Y=-0.11111
(2)X=0.10111Y=0.11011
(3)X=0.11011Y=-0.10011
解:
(1)先写出x和y的变形补码,再计算它们的差
[x]补=00.11011[y]补=11.00001[-y]补=00.11111
[x-y]补=[x]补+[-y]补=00.11011+00.11111=01.11010
∵运算结果双符号不相等∴为正溢出
X-Y=+1.1101B
(2)先写出x和y的变形补码,再计算它们的差
[x]补=00.10111[y]补=00.11011[-y]补=11.00101
[x-y]补=00.10111+11.00101=11.11100
∴x-y=-0.001B无溢出
7.用原码阵列乘法器、补码阵列乘法器分别计算X×Y。
(1)X=0.11011Y=-0.11111
(2)X=-0.11111Y=-0.11011
解:
(1)用原码阵列乘法器计算:
[x]原=0.11011[y]原=1.00001
1 1 0 1 1
×) 1 1 1 1 1
----------------------------------
1 1 0 1 1
1 1 0 1 1
1 1 0 1 1
1 1 0 1 1
1 1 0 1 1
-----------------------------------------
1 1 0 1 0 0 0 1 0 1
[x×y]原=1.101000101
∴x×y=-0.101000101
(2)用补码阵列乘法器计算:
[x]补=0.11011[y]补=1.00001
(0) 1 1 0 1 1
×)
(1) 0 0 0 0 1
----------------------------------
(0) 1 1 0 1 1
(0) 0 0 0 0 0
(0) 0 0 0 0 0
(0) 0 0 0 0 0
(0) 0 0 0 0 0
(0)
(1)
(1)(0)
(1)
(1)
-----------------------------------------
(1) 0 0 1 0 1 1 1 0 1 1
[x×y]补=1.0010111011
∴x×y=-0.1101000101
8.用原码阵列除法器计算X÷Y。
(1)X=0.11000Y=-0.11111
(2)X=-0.01011Y=0.11001
解:
(1)[x]原=[x]补=0.11000 [-∣y∣]补=1.00001
被除数X 0.11000
+[-∣y∣]补1.00001
----------------------
余数为负1.11001→q0=0
左移1.10010
+[|y|]补 0.11111
----------------------
余数为正0.10001→q1=1
左移1.00010
+[-|y|]补1.00001
----------------------
余数为正0.00011→q2=1
左移0.00110
+[-|y|]补1.00001
----------------------
余数为负1.00111→q3=0
左移0.01110
+[|y|]补 0.11111
----------------------
余数为负1.01101→q4=0
左移0.11010
+[|y|]补 0.11111
----------------------
余数为负1.11001→q5=0
+[|y|]补 0.11111
----------------------
余数0.11000
故[x÷y]原=1.11000即x÷y=-0.11000B
余数为0.11000B×
9.设阶为5位(包括2位阶符),尾数为8位(包括2位数符),阶码、尾数均用补码表示,完成下列取值的[X+Y],[X-Y]运算:
(1)X=
×0.100101Y=
×(-0.011110)
(2)X=
×(-0.010110)Y=
×(0.010110)
解:
(1)将y规格化得:
y=
×(-0.111100)
[x]浮=1101,00.100101[y]浮=1101,11.000100[-y]浮=1101,00.111100
①对阶
[ΔE]补=[Ex]补+[-Ey]补=1101+0011=0000
∴Ex=Ey
②尾数相加
相加 相减
00.100101 00.100101
+11.000100 +00.111100
------------ --------------
11.101001 01.100001
[x+y]浮=1101,11.101001 左规[x+y]浮=1100,11.010010
∴x+y=
×(-0.101110)
[x-y]浮=1101,01.100001 右规[x-y]浮=1110,00.1100001
舍入处理得[x-y]浮=1110,00.110001
∴x-y=
×0.110001
(2)[x]浮=1011,11.101010[y]浮=1100,00.010110[-y]浮=1100,11.101010
①对阶
[ΔE]补=[Ex]补+[-Ey]补=1011+0100=1111
∴△E=-1[x]浮=1100,11.110101(0)
②尾数相加
相加 相减
11.110101(0) 11.110101(0)
+00.010110 +11.101010
-------------- ------------------
00.001011(0) 11.011111(0)
[x+y]浮=1100,00.001011(0)左规[x+y]浮=1010,00.1011000
∴x+y=
×0.1011B
[x-y]浮=1100,11.011111(0)
∴x-y=
×(-0.100001B)
14.某机字长16位,使用四片74181组成ALU,设最低位序标注为0位,要求:
(1)写出第5位的进位信号C6的逻辑表达式;
(2)估算产生C6所需的最长时间;
(3)估算最长的求和时间。
解:
(1)组成最低四位的74181进位输出为:
C4=G+PC0,C0为向第0位的进位
其中:
G=y3+x3y2+x2x3y1+x1x2x3y0,P=x0x1x2x3
所以:
C5=y4+x4C4
C6=y5+x5C5=y5+x5y4+x5x4C4
(2)设标准门延迟时间为T,"与或非"门延迟时间为1.5T,则进位信号C0由最低位传送至C6需经一个反相器,两级"与或非"门,故产生C6的最长延迟时间为:
T+2×1.5T=4T
(3)最长求和时间应从施加操作数到ALU算起:
第一片74181有3级"与或非"门(产生控制参数x0,y0Cn+4),第二、第三片74181共2级反相器和2级"与或非"门(进位链),第四片74181求和逻辑(1级"与或非"门和1级半加器,其延迟时间为3T),故总的加法时间为:
T=3×1.5T+2T+2×1.5T+1.5T+1.5T+3T=14T
17.设A,B,C是三个16位的通用寄存器,请设计一个16位定点补码运算器,能实现下述功能:
(1)A±B→A
(2)B×C→A,C(高位积在寄存器A中)
(3)A÷B→C(商在寄存器C中)
解:
设计能完成加、减、乘、除运算的16位定点补码运算器框图。
分析各寄存器作用:
加 减 乘 除
A 被加数→和 同左 初始为0 被除数→余数
部分积→乘积(H) 除数
B 加数 同左 被乘数
C -- -- 乘数→乘积(L) 商
∴A:
累加器(16位),具有输入、输出、累加功能及双向移位功能;
B:
数据寄存器(16位),具有输入、输出功能;
C:
乘商寄存器(16位),具有输入、输出功能及双向移位功能。
画出框图:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二章运算方法和运算器习题参考答案 第二 运算 方法 运算器 习题 参考答案