内容发布更新时间 : 2024/11/8 3:06:34星期一 下面是文章的全部内容请认真阅读。
.
?2 0 0 0 . 0 1 0 1 1 0 1 1 0 0 0 0 1 1 . 0 + 1 1 1 . 0 0 1 1 0 0 +[-x]补 1 1 1 . 1 0 0 0 1 0 1 1 0 0 0 0 0 0(清0) 4)舍入:设采用0舍1入法,应舍: [x×y]阶补尾补=0,110;1.000 101 5)溢出:无
x×y=2110×(-0.111 011) = 26×(-59/64)
(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 [y]阶补尾补=00,011;1.000 100 1)阶码相减:
[Ex]补+[-Ey]补=00,110+ 11,101=00,011(无溢出) 2)尾数相除: (补码加减交替除法) 被除数(余数) 商
1 1 . 0 1 0 1 0 0 0 . 0 0 0 0 0 0 试减, + 0 0 . 1 1 1 1 0 0 Mx、My同号,+[-My]补 0 0 . 0 1 0 0 0 0
1? 0 0 . 1 0 0 0 0 0 0 . + 1 1 . 0 0 0 1 0 0 r、My异号,+[My]补 1 1 . 1 0 0 1 0 0
1? 1 1 . 0 0 1 0 0 0 0.1
+ 0 0 . 1 1 1 1 0 0 r、My同号, +[-My]补 0 0 . 0 0 0 1 0 0
1? 0 0 . 0 0 1 0 0 0 0.1 0
+ 1 1 . 0 0 0 1 0 0 r、My异号, +[My]补 1 1 . 0 0 1 1 0 0
被除数(余数) 商
1? 1 0 . 0 1 1 0 0 0 0 . 1 0 1
+ 0 0 . 1 1 1 1 0 0 r、My同号, +[-My]补 1 1 . 0 1 0 1 0 0
1? 1 0 . 1 0 1 0 0 0 0.1 0 1 1
+ 0 0 . 1 1 1 1 0 0 r、My同号,+[-My]补 1 1 . 1 0 0 1 0 0
1? 1 1 . 0 0 1 0 0 0 0.1 0 1 1 1
+ 0 0 . 1 1 1 1 0 0 r、My异号, +[-My]补 0 0 . 0 0 0 1 0 0 1? 0.1 0 1 1 1 1 —— 恒置1 + 1 1 . 0 0 0 1 0 0 r、Mx异号,(恢复余数) 1 1 . 0 0 1 0 0 0 且r、My异号, +[My]补 [Mx?My]补= 0.101 111, [r]补=1.001 000 r= -0 .111 000 ′ 2-6 =-0.000 000 111 000
可编辑范本
.
29. 设浮点数阶码取3位,尾数取6位(均不包括符号位),要求阶码用移码运算,尾数用补码运算,计算x·y,且结果保留1倍字长。 (1)x=2-100× 0.101101, y=2-011×(-0.110101); (2)x=2-011×(-0.100111), y=2101×(-0.101011)。 解:先将x、y转换成机器数形式: (1)[x]阶移尾补=0,100;0.101 101 [y]阶移尾补=0,101;1.001 011 1)阶码相加: [Ex]移+[Ey]补=00,100+11,101 =00,001(无溢出) 2)尾数相乘: (补码两位乘比较法) 部分积 乘数 yn+1 0 0 0 . 0 0 0 0 0 0 1 1 . 0 0 1 0 1 1 0 + 1 1 1 . 0 1 0 0 1 1 +[-x]补 1 1 1 . 0 1 0 0 1 2 1 1 1 . 1 1 0 1 0 0 1 1 1 1 .0 0 1 0 1 + 1 1 1 .0
1 0 1 0 0 1 1 +[-x]补 1 1 1 . 0
0 0 1 1 1 2 1 1 1 . 1 1 0 0 0 1 1 1 1 1 1 1 . 0 1 + 0 0 0 . 1 0 1 1 0 1 +[x]
. 0 1 1 1 1 0 1 0 1 1
补 0 0 0 2 0 0 0 . 0 0 0 1 1 1
1 1 1 1 . 0 + 1 1 1 . 0 1 0 0 1 1 +[-x]补 1 1 1 . 0 1 1 0 1 0 1 0 1 1 1 1 0 0(清0)
[Mx × My]补=1.011 010(101 111 00) 3)结果规格化:已是规格化数。 4)舍入:设采用0舍1入法,应入: [x×y]阶移尾补=0,001;1.011 011 5)溢出:无 x×y=2-111×(-0.100 101) 方案二:采用阶补尾原格式计算: [x]阶补尾原=1,100;0.101 101 [y]阶补尾原=1,101;1.110 101 1)阶码相加: [Ex]补+[Ey]补=11,100+11,101 =11,001(无溢出)
原码一位乘: 部分积 乘数y* 0 . 0 0 0 0 0 0 . 1 11
1 0 1 0 1 —— +x* + 0 . 1 0 1 1 0 1 0 . 1 0 1 1 0 1 1 0 . 0 0 1 0 1 0 . 0 1 0 1 1 0 1 . 1 1 0 1 0 —— +0 0 1 . 1 1 0 1 ——
1 0 . 0 1 1 1 0
0 1 0 0 0 0 1 . 1 1 —— +x* + 0 . 1
0 1 1 0 1 1 . 0 0 1 0 1 0 0 1
+x* + 0 . 1 0 1 1 0 1 0 . 1 1 1 0 0 1 0 . 0 0 1 10 0 0 1 . 1 1 0 —— +0 1
0 1 1 0 1 0 . 1 1 1 1 0 . 0 1 1 1 0 1 1 0 0 0 1 . 1 —— +x* + 0 . 0 1 1 1 0 . 1 0 0 1 0 1 0 1 0 0
[Mx × My]原=1.100 101(010 001) 3)结果规格化:已是规格化数。 4)舍入:设采用0舍1入法,应舍: [x×y]阶补尾原=1,001;1.100 101 5)溢出:无 x×y=2-111×(-0.100 101) (2)x=2-011×(-0.100 111) y=2101×(-0.101 011) [x]阶移尾补=0,101;1.011 001 [y]阶移尾补=1,101;1.010 101 1)阶码相加: [Ex]移+[Ey]补=00,101+00,101 =01,010(无溢出)
2)尾数相乘: (补码两位乘比较法) 部分积 乘数 yn+1 0 0 0 . 0 0 0 0 0 0 1 1 . 0 1 0 1 0 1 0 + 1 1 1 . 0 1 1 0 0 1 +[x]补 1 1 1 . 0 1 1 2 1 1 1 . 1 1 0 1 1 0 0 1 1 1 .0 1 0 1 0 + 1
0 0 1 1 1 . 0 1 1 0 0 1 +[x]补 1 1
1 . 0
1 1 1 .
1 . 0 0 1 1 1 1 2 1 1 1 . 1 1 0 0 1 1 1 1 0 1 1
1 0 + 1 1 1 . 0 1 1 0 0 1 +[x]补 2 1 1 1 . 1 1 0 0 1
0 0 1 1 0 0 1 0 0 1 1 0 1 1 1 . 0 + 0 0 0 . 1 0 0 1 1 1 +[-x]补 0 0 0 . 0 1 1 0 1 0 0 0 1 1 0 1 0 0(清0) [Mx × My]补=0.011 010(001 101 00)
3)结果规格化: [x×y]阶移尾补= = 1,010;0.011 010(001 101 00) = 1,001;0.110 100(011 010 0) 4)舍入:设采用0舍1入法,应舍: [x×y]阶移尾补=1,001;0. 110 100 5)溢出:无 x×y=2001×0.110 100 方案二:采用阶补尾原格式计算: [x]阶补尾原=1,101;
可编辑范本
.
1.100 111 [y]阶补尾原=0,101;1.101 011 1)阶码相加: [Ex]补+[Ey]补=11,101+ 00,101 =00,010(无溢出)
原码一位乘: 部分积 乘数y* 0 . 0 0 0 0 0 0 . 1 0 1 0 1 1 1 0 . 0 1 0 0 1 1 1 1
—— +x* + 0 . 1 0 0 1 1 1 0 . 1 0 0 1 1
0 1 0 1 0 1 .
1 0 . 0 1 1 0 1
1 1 . 1 0 1 0 1 —— +x* + 0 . 1 0 0 1 1 1 0 . 1 1 1 0 1 1 0 . 0 0
1 0 . 0 1 1 1 0 1 0 1 . 1 0 1 0 —— +0
1 0 1 —— +x* + 0 . 1 0 0 1 1 1 0 . 1 1 0 1 0 . 0 00 1 1 0 1 . 1 0 —— +0
1 0 1 1 1 0 1 0 1 1 0 1 . 1 ——
+x* + 0 . 1 0 0 1 1 1 0 . 1 0 . 0 1 1 0 1 0 0 0 1 1 0 11 1 0 1 0 0 [Mx × My]原=0.011 010(001 101) 3)结果规格化: [x×y]阶补尾原= = 0,010;0.011 010(001 101) = 0,001;0.110 100(011 01) 4)舍入:设采用0舍1入法,应舍: [x×y]阶补尾原=0,001;0. 110 100 5)溢出:无 x×y=2001×0.110 100
30. 机器数格式同上题,要求阶码用移码运算,尾数用补码运算,计算x÷y。 (1)x=2101× 0.100111, y=2011×(-0.101011); (2)x=2110×(-0.101101), y=2011×(-0.111100)。
解:先将x、y转换成机器数形式: (1)[x]阶移尾补=1,101;0.100 111 [y]阶移尾补=1,011;1.010 101 1)阶码相减: [Ex]移+[-Ey]补=01,101+11,101 =01,010(无溢出)
2)尾数相除: (补码加减交替除法) 被除数(余数) 商 0 0 . 1 0 0 1 1 1 0 . 0 0 0 0 0 0 试减, + 1 1 . 0 1 0 1 0 1 Mx、My异号,+[My]补 1 1 . 1 1 1 1 . 1 1 1 0 0 0 1 . + 0 0 . 1 0 1 01
1 1 0 0 1 0 1 . 0 0 0 1
1 1 r、My同号,+[-My]补 0 0 . 1 0 0 0 1 1 1 0 1.0 + 1 1 . 0 0 . 0 1 1 0 1 1 1 1 0 1 0 1 r、My异号, +[My]补 0 0 . 0 0 1 0 1 1
商
1 0 1 r、My异号, +[My]补 1 1 . 1 0 1 0 1 1 1
0 1 0 1 0 1 r、My
0 1 0 1 0 1 r、My异号, +[My]补 0 0 . 1 1 0 1 1 0 1.0 0 + 1 1 . 0
续: 被除数(余数) 0 0 . 0 1 0 1 1 0 1 . 0 0 0 + 1 1 . 0 1 01 1 1 . 0 1 0 1 1
0 1.0 0 0 1 + 0 0 . 1 0 1 0 1 1 r、My同号,+[-My]补 0 0 . 0 0 0 0 1 0 1.0 0 0 1 0 + 1 1 .0 0 . 0 0 0 0 0 1 1 1.0 0 0 1
异号, +[My]补 1 1 . 0 1 0 1 1 1 1 0 1 —— 恒置1 + 0 0 . 1 0 1 0 1 1 r、Mx异号,(恢复余数) 0 0 . 0 0 0 0 1 My]补= 1.000 101, [r]补=0.000 010 r= 0 .000
0 且r、My同号, +[-My]补 [Mx 2-6 =0.000 000 000 010
010
[x [x]阶补尾原
3)结果规格化:已是规格化数。 4)舍入:已恒置1舍入。 5)溢出:无 y=2010×(-0.111 011) 方案二:采用阶补尾原形式:
y]阶移尾补=1,010;1.000 101 x
=0,101;0.100 111 [y]阶补尾原=0,011;1.101 011 1)阶码相减: [Ex]补+[-Ey]补=00,101+11,101 =00,010(无溢出)
2)尾数相除: (原码加减交替除法) 被除数(余数) 商 0 0 . 1 0 0 1 1 1 0 . 0 0 0 0 0 0 试减, + 1 1 . 0 1 0 1 0 1 +[-My*]补 1 1 . 1 1 1 0 0 0 0 . + 0 0 .+My* 0 0 . 1 0 0 0 1 1 1+[-My*]补 0 0 . 0 1 1 0 1 1 11 r 1 0 1 1 0 0 . 0 1 0 1 1 0
续: 被除数(余数) 商 1 0, +[-My*]补 1
1 1 . 1 1 1 1 0 0 1 0
0,0,
1 0 1 0 1 1 r 1 . 0 0 0 1 1
0.1 1 + 1 1 . 0 1 0 1 0
0 0.1 + 1 1 . 0 1 0 1 0 1 0 0 . 1 1 0 1 1 0
r 0, +[-My*]补 0 0 . 0 0
可编辑范本
.
1 . 10 . 1 1 1 + 1 1 . 0 1 0 1 0 1 r 1 1 . 0 1 0 1 1 0 0.1 1 1
0 1 0 1 1 1 0 0 . 0 0 0 00,+My* 0 0 . 0 0 0 0 0 1 1
0 1
0 + 0 0 . 1 0 1
1 r 0,1 0 0.1 1 1 0 1 + 1 1 . 0 1 0 1 0 1 r 0.1 1 1 0 1 0 + 0 0 . 1 0 1 0 1原= 1.111 010 r*= 0 .000 010
+[-My*]补 1 1 . 0 1 0 1 1 1 1 0 ,恢复余数,
My]
+My* 0 0 . 0 0 0 0 1 0 1 r 2-6 =0.000 000 000 010
[Mx
3)结果规格化:已是规格化数。 4)舍入:无 5)溢
y]阶补尾原=0,010;1.111 010 x
出:无 [x y=2010×(-0.111 010) (2)x=2110×(-0.101 101) y=2011×(-0.111 100) [x]阶移尾补=1,110;1.010 011 [y]阶移尾补=1,011;1.000 100 1)阶码相减: [Ex]移+[-Ey]补=01,110+11,101 =01,011(无溢出)
2)尾数相除: (补码加减交替除法) 被除数(余数) 商 1 1 . 0 1 0 0 1 1 0 . 0 0 0 0 0 0 试减, + 0 0 . 1 1 1 1 0 0 Mx、My同号,+[-My]补 0 0 . 0 0 0 . 0 1 1 1 1 0 0 . + 1 1 . 0 0 0 0
0 1 1 1 1 1 1 1 . 0 0 0 1
1 0 0 r、My异号,+[My]补 1 1 . 1 0 0 0 1 0 1 0 0.1 + 0 0 .
1 1 1 1 0 0 r、My同号, +[-My]补 0 0 . 0 0 0 0 0 0 0.1 0 + 1 1 . 0 0 . 0 0 0 0 0 0 1 0 0 0 1 0 0 r、My异号, +[My]补 1 1 . 0 0 0 1 0 0 续: 被除数(余数) 1 0 . 0 0 1 0 0 0 0 . 1 0 1 + 0 0 . 1 11 1 0 . 0 0 1 0
商
1 1 0 0 r、My同号, +[-My]补 1 1 . 0 0 0 1 0 0 1 0
1 1 . 0 0 0 1 0 0 1 0.1 0 1
. 1 1 1 1 0 0 r、My
1 1 1 —— 恒置
[r]补=1.000
0 0.1 0 1 1 + 0 0 . 1 1 1 1 0 0 r、My同号,+[-My]补 1 0 . 0 0 1 0 0 0 0.1 0 1 1 1 + 0 0
同号, +[-My]补 1 1 . 0 0 0 1 0 0 1 My]补= 0.101 111,100=[My]补 r= -0.111 100
注:由于补码加减交替除法算法中缺少对部分余数判“0”的步骤,因此算法运行中的某一步已除尽时,算法不会自动停止,而是继续按既定步数运行完。此时商由算法本身的这一缺陷引入了一个误差,而余数的误差正好等于除数。 商的误差引入的原因:当r、My同号时,此题中表示够减(r、Mx同号);当r、My异号时,此题中表示不够减(r、Mx异号);因此,当r=0时,被判为不够减(实际上应为够减),商0(实际上应商1),由此引入了误差。 3)结果规格化:已是规格化数。 y=2011× 0.101 111
y]阶移尾补=1,011;0.101 111 x
4)
舍入:已恒置1舍入。 5)溢出:无 [x 方案二:采用阶补尾原形式: [x]阶补尾原=0,110;1.101 101 [y]阶补尾原=0,011;1.111 100 1)阶码相减: [Ex]补+[-Ey]补=00,110+11,101 =00,011(无溢出)
2)尾数相除: (原码加减交替除法) 被除数(余数) 商 0 0 . 1 0 1 1 0 1 0 . 0 0 0 0 0 0 试减, + 1 1 . 0 0 0 1 0 0 1 1 . 1 0 0 0 1 0
+[-My*]补 1 1 . 1 1 0 0 0 1 1 0,+My* 0 0
0, +[-My*]补 0 0 . 0 0 0 0 0 0 1
0 . + 0 0 .
. 0 1
1 1 1 1 0 0 r 0 0 . 1 1 1 1 0 0 0.1 + 1 1 . 0 0 01 1 1 0 1 0 0 . 0 00 1 0 0
1 0 .续: 被除数(余数) 商 1 0 0 1 0 0 0 0 . 1 1 0 + 0 0 . 1 1 1 1 0 0 1 0 . 0 0 1 0 0 0 0.10,+My* 1 1 . 0 0 0 1 0 0 1
r 0,+My* 1 1 . 0 0
1 0 0 + 0 0 . 1 1 1 1 0 0 r 1 0 . 0 0
0 1 0 0 1 0.1 1 0 0 0 0
0,+My* 1
+ 0
1 0 0 0 0.1 1 0 0 0 + 0 0 . 1 1 1 11 . 0 0 0 1 0 0 1
1 r、Mx同号,结束。 [Mx 2-6 = -0.000 000 111 100
1 0 0 r 0,
0 0 0 0 0.1 1 + 1 1 . 0 0 0 1 0 0 r +[-My*]补 1 1 . 0 0
0 0 r 0,恢复余数,+My* 0 0 . 0 0 0 0 0 0
可编辑范本
.
0 . 1 1 1 1 0 0 r 2-6 = -0.000 000 000 000舍入:无 5)溢出:无 [x
My]原= 0.110 000, r= -0.000 000[Mx
4)
3)结果规格化:已是规格化数。 y=2011× 0.110 000 29.y]阶补尾原=0,011;0.110 000 x
31.设机器字长为32位,用与非门和与或非门设计一个并行加法器(假设与非门的延迟时间为
30ns,与或非门的延迟时间为45ns),要求完成32位加法时间不得超过0.6μs。画出进位链及加法器逻辑框图。
解:首先根据题意要求选择进位方案: 1)若采用串行进位链(行波进位),则在di、ti函数的基础上,实现32位进位需要的时间为: 30=1920ns 不满足0.6μs的加法时间限制,不能用。(设1ty=30ns)
32=64ty=64
T=2ty 30=600ns
8组=20ty=20
2)若采用单重分
组跳跃进位(级连方式),则在di、ti的基础上,4位一组分组,32位进位需: T=2.5ty 刚好满足0.6 μs加法时间的限制,
考虑到一次加法除进位时间外,还需di、ti函数的产生时间、和的产生时间(最高位和)等因素,故此进位方案仍不适用。 30=450ns
6组=15ty=15
结论:若采用单重分组跳跃进
位,小组规模需在6位以上较为合适。即: T=2.5ty 除进位外还有150ns(约5ty)左右的时间供加法开销,较充裕。 3)若采用双重分组跳跃进位(二级先行—级联进位),4位一小组,4小组为一大组分组,则32位进位需: 30=300ns 完全满足0.6μs的加法时间限制,可以使用。4级=10ty=10的进位链框图如下:
加法器逻辑框图如下。图中,进位链电路可选上述两种方案之一。
32. 设机器字长为16位,分别按4、4、4、4和5、5、3、3分组后,
(1)画出按两种分组方案的单重分组并行进位链框图,并比较哪种方案运算速度快。 (2)画出按两种分组方案的双重分组并行进位链框图,并对这两种方案进行比较。 (3)用74181和74182画出单重和双重分组的并行进位链框图。
解:(1)4—4—4—4分组的16位单重分组并行进位链框图见教材286页图6.22。
5—5—3—3分组的16位单重分组并行进位链框图如下:
(2)4—4—4—4分组的16位双重分组并行进位链框图见教材289页图6.26。 5—5—3—3分组的16位双重分组并行进位链框图如下:
5—5—3—3分组的进位时间=2.5ty 4—4—4—4分组的进位时间=2.5ty
3=7.5ty; 3=7.5ty;
T=2.5ty
32位双重分组跳跃进位的进位链框图见教材287页图6.23。 6位一组单重分组跳跃进位
可见,两种分组方案最长加法时间相同。
结论:双重分组并行进位的最长进位时间只与组数和级数有关,与组内位数无关。 (3)单重分组16位并行加法器逻辑图如下(正逻辑):
注意: 1)74181芯片正、负逻辑的引脚表示方法;
2)为强调可比性,5-5-3-3分组时不考虑扇入影响;
3)181芯片只有最高、最低两个进位输入/输出端,组内进位无引脚; 4)181为4位片,无法5-5-3-3分组,只能4-4-4-4分组;
5)单重分组跳跃进位只用到181,使用182的一定是双重以上分组跳跃进位; 6)单重分组跳跃进位是并行进位和串行进位技术的结合;双重分组跳跃进位是二级
可编辑范本