对阶后[x]浮=11001.110101(0),[y]浮=11000.010110
对阶后的尾数相加:
MX+My=1.110101+0.010110
1.110101
+0.010110
0.001011
x+y=0.001011⨯21100,化为规格化数(左移2位)为:
x+y=0.101100⨯21010,即:
x+y=0.101100⨯2-6
对阶后的位数相减:
MX-My=MX+(-My)=1.110101+1.101010
1.110101
+1.101010
1.011111
x-y=1.011111⨯21100,已经是规格化数,所以
x-y=-0.100001⨯2-4
10、
(1)
Mx=
,Ex=0011
My=
,Ey=0100
Ex+Ey=0011+0100=0111
[x⨯y]符=0⊕1=1,乘积的数值=|Mx|⨯|My|:
0.1101
⨯0.1001
01101
00000
00000
01101
00000
001110101
所以,x⨯y=-0.01110101⨯20111,规格化处理(左移一位),并采用0舍1入法进行舍入:
x⨯y=-0.111011⨯20110
即:
=-0.111011⨯26
(2)
将x、y化为规格化数:
Mx=
,Ex=1110
My=
,Ey=0011
Ex-Ey=Ex+(-Ey)=1110+1101=1011
[x÷y]符=0⊕0=0,下面用加减交替法计算尾数Mx÷My:
[Mx]补=0.011010,[My]补=0.111100,[-My]补=1.000100
0.011010
+[-My]补1.000100
1.011110——余数为负,商为0
0.111100——余数和商左移一位(0)
+[My]补0.111100
1.111000——余数为负,商为0
1.110000——余数和商左移一位(00)
+[My]补0.111100
0.101100——余数为正,商为1
1.011000——余数和商左移一位(001)
+[-My]补1.000100
0.011100——商为1
0.111000——(0011)
+[-My]补1.000100
1.111100——商为0
1.111000——(00110)
+[My]补0.111100
0.110100——商为1
1.101000——(001101)
+[-My]补1.000100
0.101100——商为1
1.011000——(0011011)
+[-My]补1.000100
0.011100——商为1——(00110111)
Mx÷My的商为0.0110111,余数为0.011100⨯2-7,由于x化为0.01101(Mx)是尾数右移2位才得到,所以x÷y真正的余数是0.011100⨯2-7再尾数左移2位,即0.011100⨯2-9=0.111000⨯2-10
所以,x÷y的商为:
0.0110111⨯21011,规格化处理后为:
0.110111⨯21010=0.110111⨯2-6,余数为0.111000⨯2-10
11、
不考虑181ALU的函数发生器,而是从简单的全加器出发,则:
若设4位的二进制数为A=A3A2A1A0,B=B3B2B1B0,并设Gi=AiBi,Pi=Ai⊕Bi,由全加器进位输出的逻辑函数Ci+1=AiBi+Ci(Ai⊕Bi)可知:
(由于进位输出函数还可以写成Ci+1=AiBi+Ci(Ai+Bi),故Pi=Ai+Bi也可)
(1)串行进位方式:
C1=A0B0+C0(A0⊕B0)=G0+P0C0
C2=A1B1+C1(A1⊕B1)=G1+P1C1
C3=A2B2+C2(A2⊕B2)=G2+P2C2
C4=A3B3+C3(A3⊕B3)=G3+P3C3
(2)并行进位方式:
C1=G0+P0C0
C2=G1+P1C1=G1+P1(G0+P0C0)=G1+P1G0+P1P0C0
C3=G2+P2C2=G2+P2(G1+P1G0+P1P0C0)=G2+P2G1+P2P1G0+P2P1P0C0
C4=G3+P3C3=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C0
12、
(1)-5
-5=-(101)2=-(1.01)2⨯22
所以
S=1
E=e+127=2+127=129=(81)16=(10000001)2
M=(01000000000000000000000)2
故浮点格式为:
11000000101000000000000000000000,用十六进制表示为:
(C0A00000)16
(2)-1.5
-1.5=-(1.1)2=-(1.1)2⨯20
所以
S=1
E=e+127=0+127=(7F)16=(01111111)2
M=(10000000000000000000000)2
故浮点格式为:
10111111110000000000000000000000,用十六进制表示为:
(BFC00000)16
(3)384
384=(180)16=(110000000)2=(1.1)2⨯28
所以
S=0
E=e+127=8+127=135=(87)16=(10000111)2
M=(10000000000000000000000)2
故浮点格式为:
01000011110000000000000000000000,用十六进制表示为:
(43C00000)16
(4)1/16
1/16=(1.0)2⨯2-4
所以
S=0
E=e+127=-4+127=(7B)16=(01111011)2
M=(00000000000000000000000)2
故浮点格式为:
00111101100000000000000000000000,用十六进制表示为:
(3D800000)16
(5)-1/32
-1/32=-(1.0)2⨯2-5
所以
S=1
E=e+127=-5+127=(7A)16=(01111010)2
M=(00000000000000000000000)2
故浮点格式为:
10111101000000000000000000000000,用十六进制表示为:
(BD000000)16
13、
(1)11000001111000000000000000000000
S=1
E=(83)16=131e=E-127=131-127=4
1.M=(1.11)2
所以,该浮点数为-(1.11)2⨯24=-(11100)2=-28
(2)00111111010100000000000000000000
S=0
E=(7E)16=126e=E-127=126-127=-1
1.M=(1.101)2
所以,该浮点数为(1.101)2⨯2-1=(0.1101)2=0.8125
14、
IEEE754标准中,32位二进制数仍然有232种不同的组合,但是由于在IEEE754标准中,阶码为全1并且尾数为非0的情况不表示一个数。
尾数23位,尾数非0有223-1种组合,再配合符号位,共有2⨯(223-1)种组合不表示一个数
所以,该格式最多能表示不同的数的个数为:
232-2⨯(223-1)
15、该运算器电路由3部分组成:
ALU完成定点加减法运算和逻辑运算;专用阵列乘法器完成乘法运算;专用阵列除法器完成除法运算。
具体逻辑电路略。
16、
该ALU能完成8种运算,故使用3个控制参数S0~S2。
运算器中含有:
(1)一个4位的加法器:
完成加法、减法、加1和传送4种操作,其中加1操作是把加数固定为1,利用4位的加法器实现;传送是把加数固定为0,利用4位加法器实现。
(2)一个4位的求补器:
完成求补操作。
(3)求反、逻辑乘和逻辑加分别设计专门的逻辑电路实现。
具体电路略
17、
181ALU中的有些操作是冗余的或可由其他操作替代的,现要求简化为8种运算,故对181的运算种类进行简化,得到4种逻辑运算和4种算术运算,具体功能表如下:
控制参数
S2S1S0
运算
000
001
010
011
100
101
110
111
逻辑0
AB
A+B
A⊕B
A加B
A减B减1
A+A
A
而181其他的逻辑运算和算术运算都可以由以上的运算间接得到,例如:
逻辑运算中:
通过对“A”求反得到;
通过对“A+B”求反得到;
通过对“A⊕B”与“
”进行逻辑与实现;
通过对“AB”取反得到;
通过“A⊕B”并让A固定为全1得到;
通过对“A⊕B”与“A”进行逻辑与实现;
通过对前面得到的
再取反得到;
通过对“A⊕B”取反得到;B通过“A⊕B”并让A固定为全0得到;逻辑1通过对“逻辑0”取反得到;
通过对前面得到的
再取反得到
算术运算中:
减1操作可通过“A减B减1”并令B固定为0来实现;
18、
余3码编码的十进制加法规则是:
两个1位十进制数的余3码相加,如结果无进位,则从和数中减去3(即加上1101);如结果有进位,则和数中加上3(加上0011),即得和数的余3码。
设参加运算的两个一位的十进制数分别为Ai和Bi,它们的余3码分别为Ai0~Ai3和Bi0~Bi3,其二进制加法的和的编码为Si0~Si3,进位为Ci+1,修正之后,和对应的余3码为Fi0~Fi3,进位为CYi+1,则根据余3码的运算规则,有:
当Ci+1=0时,Fi3Fi2Fi1Fi0=Si3Si2Si1Si0+1101;当Ci+1=1时,Fi3Fi2Fi1Fi0=Si3Si2Si1Si0+0011,由此可画出逻辑电路图如下: