计算机组成原理课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第四章
9、答:IEEE 规定了三种字长的浮点数:短浮点数字长 32 位,其中阶码部分为 8 位;长浮 点数,采用 64 位表达,其中阶码部分 11 位;临时浮点数,采用 80 位表达。在 IEEE 格式中 阶码部分用移码表达,尾数部分用原码表示,对规格化的数采用了隐藏尾数最高位技术以进 一步提高浮点数表达的精度。
3)规格化 (已经是规格化的数)
4)舍入 [MZ]原=0.1101101
]补=0010)
5)判溢 没有溢出 [ ]移=1010 ∴[z]浮=1010,0.1101101 ∴x+y=z=0.1101101*
(4)计算 x*y
解:设 x*y=z
[x]浮=1010,0.1100110 1)阶码相加
[y]浮=0110,0.1101101
[x+y]补=[x]补+[y]补 =0010111101+1111010101
=0010010010
没溢出
∴x+y=+11101000
[-y]补=000101011
00 10111101
+
11 11010101
----------
100 10010010
[x-y]补=[x]补+[-y]补
=0010111101+0000101011
+ 11.0011 -------
| | +[-x]补 ||
11.0100 | |
→ 11.1010 0101|1|
+ 00.0000 | | +0
------- | |
11.1010 0101 1|
∴[x·y]补=[Z]补=1.10100101 ∴x·y=-0.01011011
14、用补码除法求 y/x 的商(注意是 y/x) X=0.1101 y=-0.0111 解:[x]补=0.1101 [y]补=1.1001
计算机组成原理作业参考答案
第一章 2、答:从传统的观点,基本的计算机硬件系统由运算器、控制器、存储器、输入设备、输 出设备组成。它们之间通过总线连接起来。运算器只要完成算术、逻辑运算。存储器主要是 存放运行的程序(指令系列)和数据。输入/输出接口和输入/输出设备主要完成人机交互。 控制器按程序规定的次序逐条取出指令分析其功能,发生相应的控制命令,控制相应的部件 完成指令的功能。
[-x]补=1.0011 [y/x]补=[Z]补 算法如下:
[y]补

11.1001 00000|| x 与 y 异号
+ 00.1101 -------
|| +[x]补 ||
00.0110
|| 1 与[x]同号 商 1
← 00.1100 0000|1|
+ 11.0011 -------
| | +[-x]补 ||
3、计算机的层次结构是指人们从不同的层面认识计算机系统的组成、与运行原理与机制。 计算机一般可以分为 6 个层次:数字逻辑电路层,微指令机器层,机器指令层,操作系统层, 汇编语言层和高级语言层。层与层之间的关系主要体现在:下层是上层的基础,处在下面一 层更接近计算机硬件实现的细节。虽然其实现的功能相对简单,但人们使用这些功能更感困 难;处在上面一层是在下面一层的基础上实现的,功能更强,更接近人类解决问题的思维方 式,使用更方便。
+ 11.0011 | ------- |
| +[-x]补 |
00.0101 |01011| 1 同号商 1
← 00.101wk.baidu.com |10111|
+ 11.0011 | ------- |
| +[-x]补 |
11.1101 |10111| 0 异号
∵[y/x]补=1.01110(多除了一位) ∴y/x=-0.10010 或 [y/x]补=1.0111 ∴ y/x=-0.1001
------ | |
000001 | | 够减 商 1
← 000010 00|01|
+ 110011 | | -x
------ | |
110101 | | 0
← 101010 0|010|
+ 001101 | | +x
------ | |
110111 | | 0
← 101110 |0100|
+ 001101 | | +x
绝对值最小的数
[ mx ]浮=0000,0.0000001
mx=(2-7)* 2-8= 2-15
(2)x=0.0110011*2011
y=0.1101101*2010
规格化 x=0.1100110*2010
[x]浮=1010,0.1100110
∵ =-010 ∴[EY]移=0110
∴[y]浮=0110,0.1101101 (3)计算 x+y 解:设 x+y=z [x]=1010,0.1100110 [y]浮=0110,0.1101101 1)对阶 [EX-EY]移=[ EX]移+[-EY]补 EY =-010 [-EY]补=0010
采用分层的方法有利于分析问题和简化问题处理的难度。处理某一层的问题时,只要集 中精力解决该层最关系的核心问题,而不必牵扯其上、下层中的其它问题。
第三章(书)
1、 7+3/4→111.11
‐23/ 64→-0.010111 27.5→11011.1
8、答:因为 BCD 码是用 4 位二进制编码表达 1 位十进制数,而 4 位二进制数有 16 种编码, 而十进制数的基位十,数码个数为十。在 16 个编码中选 10 个来表达十进制数的个数码当然 有多种编码方案。有权系统种的 BCD 码中 1 有明确的位权。而无权系统中其 BCD 码中 1 是 没有位权的。
00 10111101 00 00101011 ---------00 11101000
x· 算式如下:
000000 |0111| 001101 | | +x ------ | | 001101 | | → 000110 1|011| + 001101 | | +x ------ | | 010011 | | → 001001 11|01| + 001101 | | +x ------ | | 010110 | | → 001011 011|0| + 000000 || +0 ------ || 001011 || → 000101 1011||
∵ =1 =1 `∴没有溢出
0.1101
∵[x+y]补=0.0101 ∴ x+y=0.0110
采用双符号法 [x+y]补=[x]补+[y]补 =00.1101+11.1001
=00.0110
∴x+y=0.0110
+
b)[x-y]补=[x]补+[-y]补=00.1101+00.0111=溢出
+ 1.1001 --------1 0.0110
[EZ]移=[ EX+EY]移=[ EX]移+[ EY]补=1010+1110=1000 2)尾数相乘 定点小数原码乘法算式(略)
|MZ|=| MX|*|MY|=0.10101100101110 [MZ]原的符号位为 0 ([MX]原与[MY]原的符号位异或得到)
∴[z]浮=1000,0.10101100101110 3)规格化 (已是规格化的数) 4)舍入 [z]浮=1000,0.1010110 5)判溢 没有溢出 ∵[z]浮=1000,0.1010110
11、答:浮点数采用规格化形式表示是为了提高浮点数表达数据的精度。规格化操作是指通 过尾数的移位和阶码的调整使到尾数的绝对值>=0.5.规格化的操作出现在两个尾数进行运 算后。
13、(1)以正数为例
绝对值最大的数
[Mx]浮=1111,0.1111111 ∴Mx =(1-2-7)*27=128-1=127
11.1111 | | 0 与[x]异号
← 11.1110 000|10|
+ 00.1101 -------
| | +[x]补 ||
00.1011 | | 1 同号
← 01.0110 00|101|
+ 11.0011 | | +[-x]补 ------- | |
00.1001 | | 1
← 01.0010 0|1011|
10、双符号位的作用是用于判断补码运算过程是否溢出。它只是出现在运算电路中。补码的
存储还是采用单符号。
(1)x=0.1101 即[x]原=0.1101 [x]补=0.1101 [x]反=0.1101
y=-0.0111 即[y]原=1.0111
[y]补=1.1001
[y]反=1.1000
a)
[x+y]补=[x]补+[y]补=0.1101+1.1001=0.0101
| +[x]补 |
11.0011 | |
→ 11.1001 1|1100| 1
+ 00.1101 | ------- |
| +[x]补 |
00.0110 | |
→ 00.0011 01|110|
+ 00.0000 | | +0
------- | |
00.0011 | |
→ 00.0001 101|11|
------ | | 0
111011 | |
∴A/x=0.1000 注意因为最后一次运算是不够减上商为 0,所得余数非真余数,需要恢复 11.1011+x=00.1000
即真正的余数为 0.1000*
11.1011
[Z]原=1.1000 即 y/x=-0.1000 余数为 0.1000*
+ 00.1101 -------
(也可由[-EY]移 求[ ]补 ∵ ]移=0110 ∴ ]补=1110
[EX-EY]移=1010+0010=1101 →+4
右移 4 位 即[ ]浮 =1010,0.00001101101
2)尾数相加 [Mz]原=[Mx]原+[My]原 =0.1100110+0.00001101101=0.11011001101
=x· =0.01011011 ∴[Z]原=1.01011011
x·y=-0.01011011
12、原码一位除计算 y/x 的商和余数
x=0.1101
y=-0.0111
[x]原=0.1101 [y]原=1.0111
[y/x]原=[Z]原=Zf.Z-1 Z-2 Z-3 Z-4
Zf = Xf⊕Yf =0⊕1=1
00.1101 00.0111 -------01.0000
(2)设采用 9 位表达
x=10111101
y=-00101011
[x]原=010111101 [y]原=100101011 [x]补=010111101 [y]补=111010101 [x]反=010111101 [y]反=111010100 a)运算采用双符号位
X:阶码 0001,尾数 0.1010; Y:阶码 1111,尾数 0.1001。设基数为 2。 (1) 求 X+Y (2) 求 X*Y(阶码运算用移码,尾数运算用补码一位乘) (3)求 X/Y=Z ,阶码用移码,尾数用原码
+
=0011101000
∴x-y=+11101000
11、用原码一位乘计算 x 乘 y 的值
x=0.1101
y=-0.0111
解:[x]原=0.1101 [y]原=1.0111
[x·y]原=[Z]原= Zf.Z-1 Z-2 Z-3... Z-8
Zf = Xf⊕Yf =0⊕1=1
= x· =0.1101*0.0111
= |y|/|x|
令|y|=A=0.0111
[-x]补=[-0.1101]补=1.0011
|Z|=A/x 的算式如下:
A
000111 0000|| -x(相当为+[-x]补) + 110011 ||
------ ||
111010 || 0(不够减 商 0)
← 110100 000|0|
+ 00.1101 | | +x
∴x*y=z=0.1010110* =0.1010110
附加练习题
1 写出下列各二进制数的原码、补码和反码:
X = 0.1010,
X=‐0.0100,
2 已知[X]补为下述各值,求 X(真值):
[X]补=0.1110, [X]补=1.1100
3 用补码运算计算下列各组数的和, 判断是否溢出。
(1) X=0.11001 Y=‐0.10111 (2) X=0.10010 Y=0.11000 4 用补码一位乘计算 X=0.1010,Y=‐0.0110 的积 X*Y 5 X=0.10110,Y=0.11111 用补码一位除计算 X/Y 的商 6 设浮点数 X,Y,阶码(补码形式)和尾数(原码形式)如下:
00.1000
补充题:
13、用补码一位乘求 x·y 的积
x=0.1101 y=-0.0111
解:[x]补 0.1101
[y]补=1.1001
[x·y]补=[Z]补 算式如下:
[-x]补=1.0011
[Zi]补 [y]补 附加位
00.0000 |11001| 0
11.0011 | ------- |
相关文档
最新文档