3.5 单项选择题

第 3 版 · OCR 辅助 · 原书检索 · 文字用于定位,公式与图表请回原页核验 · 本次导入快照

## 3.5 单项选择题

1. 8 位无符号整数 1001 0101 右移一位后的值为( )。

A. 0100 1010

B. 0100 1011

C. 1000 1010

D. 1100 101

2. 8 位补码定点整数 1001 0101 右移一位后的值为( )。

A. 0100 1010

B. 0100 1011

C. 1000 1010

D. 1100 1010

3. 8 位补码定点整数 1001 0101 左移一位后的值为( )。

A. 1010 1010

B. 0010 1010

C. 0010 1011

D. 溢出

4. 8 位补码定点整数 1001 0101 扩展 8 位后的值用十六进制表示为( )。

A. 0095H

B. 9500H

C. FF95H

D. 95FFH

5. 原码定点小数 1.1001 0101 扩展 8 位后的值为( )。

A. 1.0000 0000 1001 0101

B. 1.1001 0101 0000 0000

C. 1.1111 1111 1001 0101

D. 1.1001 0101 1111 1111

6. 考虑以下 C 语言代码:

short si=-8196;
int i=si;
执行上述程序段后,$i$ 的机器数表示为( )。 A. 0000 9FFCH B. 0000 DFFCH C. FFFF 9FFCH D. FFFF DFFCH <!-- page: 59 --> 7. CPU 中能进行算术和逻辑运算的最基本运算部件是( )。 A. 多路选择器 B. 移位器 C. 加法器 D. ALU 8. ALU 的核心部件是( )。 A. 多路选择器 B. 移位器 C. 加法器 D. 寄存器 9. 假定 T 表示一级门延迟,一个异或门的延迟为 3T,则 8 位全先行进位加法器的关键路径延迟为( )。 A. 6T B. 8T C. 16T D. 17T 10. 在补码加/减运算部件中,无论采用双符号位还是单符号位,必须有( )电路,它一般用异或门来实现。 A. 译码 B. 编码 C. 溢出判断 D. 移位 11. 某计算机字长为 8 位,其 CPU 中有一个 8 位加法器。已知无符号数 $x = 69, y = 38$,现要在该加法器中完成 $x + y$ 的运算,则该加法器的两个输入端信息和输入的低位进位信息分别为( )。 A. 0100 0101,0010 0110,0 B. 0100 0101,0010 0110,1 C. 0100 0101,1101 1010,0 D. 0100 0101,1101 1010,1 12. 某计算机字长为 8 位,其 CPU 中有一个 8 位加法器。已知无符号数 $x = 69, y = 38$,现要在该加法器中完成 $x - y$ 的运算,则该加法器的两个输入端信息和输入的低位进位信息分别为( )。 A. 0100 0101,0010 0110,0 B. 0100 0101,1101 1001,1 C. 0100 0101,1101 1010,0 D. 0100 0101,1101 1010,1 13. 某计算机字长为 8 位,其 CPU 中有一个 8 位加法器。已知带符号整数 $x = -69, y = -38$,现要在该加法器中完成 $x + y$ 的运算,则该加法器的两个输入端信息和输入的低位进位信息分别为( )。 A. 1011 1011,1101 1010,0 B. 1011 1011,1101 1010,1 C. 1011 1011,0010 0101,0 D. 1011 1011,0010 0101,1 14. 某计算机字长为 8 位,其 CPU 中有一个 8 位加法器。已知带符号整数 $x = -69, y = -38$,现要在该加法器中完成 $x - y$ 的运算,则该加法器的两个输入端信息和输入的低位进位信息分别为( )。 A. 1011 1011,1101 1010,0 B. 1011 1011,1101 1010,1 C. 1011 1011,0010 0101,1 D. 1011 1011,0010 0110,1 15. 某 8 位计算机中,假定 $x$ 和 $y$ 是两个带符号整数变量,用补码表示,$x = 63, y = -31$,则 $x + y$ 的机器数及其相应的溢出标志 OF 分别是( )。 A. 1FH,0 B. 20H,0 C. 1FH,1 D. 20H,1 16. 某 8 位计算机中,假定 $x$ 和 $y$ 是两个带符号整数变量,用补码表示,$x = 63, y = -31$,则 $x - y$ 的机器数及其相应的溢出标志 OF 分别是( )。 A. 5DH,0 B. 5EH,0 C. 5DH,1 D. 5EH,1 17. 某 8 位计算机中,假定带符号整数变量 $x$ 和 $y$ 的机器数用补码表示,$\left[x\right]_{\#} = \mathrm{F}5\mathrm{H}$,$\left[y\right]_{\#} = 7\mathrm{EH}$,则 $x + y$ 的值及其相应的溢出标志 OF 分别是( )。 A. 115,0 B. 119,0 C. 115,1 D. 119,1 <!-- page: 60 --> 18. 某 8 位计算机中,假定带符号整数变量 $x$ 和 $y$ 的机器数用补码表示,$[x]_{\mathrm{H}} = \mathrm{F}5\mathrm{H}$,$[y]_{\mathrm{H}} = 7\mathrm{EH}$,则 $x - y$ 的值及其相应的溢出标志 OF 分别是( )。 A. 115、0 B. 119、0 C. 115、1 D. 119、1 19. 某 8 位计算机中,假定 $x$ 和 $y$ 是两个带符号整数变量,用补码表示,$[x]_{\mathrm{H}} = 44\mathrm{H}$,$[y]_{\mathrm{H}} = \mathrm{DCH}$,则 $x + 2y$ 的机器数以及相应的溢出标志 OF 分别是( )。 A. $32\mathrm{H}, 0$ B. $32\mathrm{H}, 1$ C. FCH、0 D. FCH、1 20. 某 8 位计算机中,假定 $x$ 和 $y$ 是两个带符号整数变量,用补码表示,$[x]_{\mathrm{H}} = 44\mathrm{H}$,$[y]_{\mathrm{H}} = \mathrm{DCH}$,则 $x - 2y$ 的机器数以及相应的溢出标志 OF 分别是( )。 A. $68\mathrm{H}, 0$ B. $68\mathrm{H}, 1$ C. 8CH、0 D. 8CH、1 21. 某 8 位计算机中,假定 $x$ 和 $y$ 是两个带符号整数变量,用补码表示,$[x]_{\mathrm{H}} = 44\mathrm{H}$,$[y]_{\mathrm{H}} = \mathrm{DCH}$,则 $x / 2 + 2y$ 的机器数以及相应的溢出标志 OF 分别是( )。 A. CAH、0 B. CAH、1 C. DAH、0 D. DAH、1 22. 假定有两个整数用 8 位补码分别表示为 $r_1 = \mathrm{F}5\mathrm{H}, r_2 = \mathrm{EEH}$。若将运算结果存放在一个 8 位寄存器中,则下列运算中会发生溢出的是( )。 A. $r_1 + r_2$ B. $r_1 - r_2$ C. $r_1 \times r_2$ D. $r_1 / r_2$ 23. 以下关于原码一位乘法算法要点的描述中,错误的是( )。 A. 符号位和数值位分开运算,符号位可由一个异或门生成 B. 通过循环执行“加法”和“移位”操作得到乘积 C. ALU 中是否进行部分积与被乘数的加法运算由乘数最低位决定 D. 移位时,将进位位、部分积和乘积部分一起进行算术右移 24. 假定一次 ALU 运算用 1 个时钟周期,移位一次用 1 个时钟周期,则最快的 32 位原码一位乘法所需的时钟周期数大约为( )。 A. 32 B. 64 C. 96 D. 100 25. 以下关于 Booth 补码一位乘法算法要点的描述中,错误的是( )。 A. 符号位和数值位一起参加运算,无须专门的符号生成部件 B. 通过循环执行“加/减”和“移位”操作得到乘积 C. 由乘数最低两位决定对部分积和被乘数进行何种运算 D. 移位时,将进位位、部分积和乘积部分一起进行算术右移 26. 以下关于乘法运算部件的叙述中,错误的是( )。 A. 补码乘法部件可用于带符号整数的乘法运算 B. 原码乘法部件可用于浮点数中尾数相乘运算 C. 快速阵列乘法器中的基本部件包含有移位器 D. 两位乘法运算比一位乘法运算速度约快一倍 27. 对于两个 $n$ 位无符号整数除法运算,以下关于不恢复余数算法要点的描述中,错误的是( )。 A. 起始时被除数在高位扩展 $n$ 位 0,以将其扩展为 $2n$ 位无符号整数 B. 为判断中间余数的正/负,需在余数寄存器的最高位前增加一位符号位 C. 至少需 $n + 1$ 次循环执行“加/减”和“左移”操作才能得到 $n$ 位商 D. 运算结果一定不会发生溢出,故无须通过得到最高位商来判断溢出 <!-- page: 61 --> 28. 对于 IEEE 754 单精度浮点加减运算,在对阶过程中,需计算两个阶码 $E_x$ 和 $E_y$ 之差的补码 $[\Delta E]_{\mathrm{H}}$。若 $\Delta E \geqslant 128$ 或 $\Delta E \leqslant -129$,则 $[\Delta E]_{\mathrm{H}}$ 发生溢出。假定 $[E_x]_{\mathrm{H}}, [-[E_y]_{\mathrm{H}}]_{\mathrm{H}}$ 和 $[\Delta E]_{\mathrm{H}}$ 的最高有效位分别记为 $E_{\mathrm{xs}}, E_{\mathrm{ys}}$ 和 $E_{\mathrm{bs}}$,则相应的溢出判断方程为()。 A. Overflow $= \overline{E}_{\mathrm{xs}}\overline{E}_{\mathrm{ys}}E_{\mathrm{bs}} + E_{\mathrm{xs}}E_{\mathrm{ys}}\overline{E}_{\mathrm{bs}}$ B. Overflow $= \overline{E}_{\mathrm{xs}}\overline{E}_{\mathrm{ys}}\overline{E}_{\mathrm{bs}} + E_{\mathrm{xs}}\overline{E}_{\mathrm{ys}}\overline{E}_{\mathrm{bs}}$ C. Overflow $= \overline{E}_{\mathrm{xs}}E_{\mathrm{ys}}E_{\mathrm{bs}} + E_{\mathrm{xs}}\overline{E}_{\mathrm{ys}}E_{\mathrm{bs}}$ D. Overflow $= \overline{E}_{\mathrm{xs}}\overline{E}_{\mathrm{ys}}\overline{E}_{\mathrm{bs}} + E_{\mathrm{xs}}E_{\mathrm{ys}}E_{\mathrm{bs}}$ 29. IEEE 754 单精度浮点数加减运算的对阶过程中,需要计算两个阶码 $E_x$ 和 $E_y$ 之差的补码 $[\Delta E]_{\mathrm{H}}$。假设两个浮点数分别记为 $[x]_{\mathrm{ff}}$ 和 $[y]_{\mathrm{ff}}$,$[E_x]_{\mathrm{H}}, [E_y]_{\mathrm{H}}$ 和 $[\Delta E]_{\mathrm{H}}$ 的最高有效位分别记为 $E_{\mathrm{xs}}, E_{\mathrm{ys}}$ 和 $E_{\mathrm{bs}}$,当 $[\Delta E]_{\mathrm{H}}$ 发生溢出时,正确的处理方式是()。 A. 中止当前程序的执行,调出相应的“溢出”异常处理程序执行 B. 当 $E_{\mathrm{xs}}$ 为 1 时置最终结果为 $[x]_{\mathrm{ff}}$;当 $E_{\mathrm{xs}}$ 为 0 时置最终结果为 $[y]_{\mathrm{ff}}$ C. 当 $E_{\mathrm{ys}}$ 为 1 时置最终结果为 $[x]_{\mathrm{ff}}$;当 $E_{\mathrm{ys}}$ 为 0 时置最终结果为 $[y]_{\mathrm{ff}}$ D. 当 $E_{\mathrm{bs}}$ 为 0 时置最终结果为 $[x]_{\mathrm{ff}}$;当 $E_{\mathrm{bs}}$ 为 1 时置最终结果为 $[y]_{\mathrm{ff}}$ 30. 若两个 float 型变量(用 IEEE 754 单精度浮点格式表示)$x$ 和 $y$ 的机器数分别表示为 $x = 40\mathrm{E8}0000\mathrm{H}, y = \mathrm{C204}0000\mathrm{H}$,则在计算 $x + y$ 时,第一步对阶操作的结果 $[\Delta E]_{\mathrm{H}}$ 为()。 A. 0000 0111 B. 0000 0011 C. 1111 1011 D. 1111 1101 31. 对于 IEEE 754 单精度浮点数加减运算,只要对阶时得到的两个阶码之差的绝对值 $|\Delta E|$ 大于或等于(),就无须继续进行后续处理,此时,运算结果直接取阶大的那个数。 A. 24 B. 25 C. 126 D. 128 32. IEEE 754 标准提供了以下 4 种舍入模式,其中平均误差最小的是()。 A. 就近舍入(中间值时强迫为偶数) B. 正向舍入(即朝 $+\infty$ 方向舍入) C. 负向舍入(即朝 $-\infty$ 方向舍入) D. 截断舍入(即朝 0 方向舍入) 【参考答案】 1. A 2. D 3. D 4. C 5. B 6. D 7. D 8. C 9. A 10. C 11. A 12. B 13. A 14. C 15. B 16. B 17. A 18. D 19. C 20. D 21. C 22. C 23. D 24. B 25. D 26. C 27. C 28. D 29. B 30. D 31. B 32. A 【部分题目的答案解析】 第 20 题 已知 $[y]_{\mathrm{H}} = \mathrm{DCH} = 11011100\mathrm{B}$,所以 $[-y]_{\mathrm{H}} = 00100100\mathrm{B}, [x - 2y]_{\mathrm{H}} = [x]_{\mathrm{H}} + [-2y]_{\mathrm{H}} = [x]_{\mathrm{H}} + [-y]_{\mathrm{H}} &lt; 1 = 01000100 + 00100100 &lt; 1 = 01000100 + 01001000 = 10001100 = 8\mathrm{CH}$,从最后一步加操作来看,是两个正数相加,结果为负数,故溢出标志 OF 为 1。综上所述,答案为选项 D。 <!-- page: 62 --> # 第21题 $$ [x/2 + 2y]_W = [x]_W &gt;&gt; 1 + [y]_W &lt;&lt; 1 = 01000100 &gt;&gt; 1 + 11011100 &lt;&lt; 1 = 00100010 + 10111000 = 11011010 = \text{DAH}, \text{从最后一步加操作来看,是一个正数和一个负数} $$ 相加,因此一定不会溢出。综上所述,答案为 C。 # 第23题 关于原码一位乘法算法要点的描述中,错误的是 D 选项中的说法:“移位时,将进位位、部分积和乘积部分一起进行算术右移”。因为原码一位乘法算法中,数值部分和符号分开处理,数值部分通过无符号乘的算法实现,在将进位位、部分积和乘积部分右移时,采用的是逻辑右移,即高位补 0 的办法,而不是采用算术右移方式。 # 第24题 假定一次 ALU 运算用 1 个时钟周期,移位一次用 1 个时钟周期,则最快的 32 位原码一位乘法所需的时钟周期数大约为 64。因为 32 位原码一位乘法的循环次数为 32,每次循环中,控制逻辑根据当前乘数寄存器的最低位确定是否在 ALU 中进行加法运算,这需要一个时钟周期;然后进行右移操作,这需要一个时钟周期。因此,每次循环需要两个时钟周期,一共需要大约 64 个时钟周期。 # 第25题 关于布斯补码一位乘法算法要点的描述中,错误的是 D 选项中的说法:“移位时,将进位位、部分积和乘积部分一起进行算术右移”。因为补码一位乘法的算法中,并没有专门的进位位,而符号位作为部分积的一部分进行处理,所以,选项 D 的描述中提到进位位和部分积、乘积部分一起算术右移是错误的。 # 第27题 对于两个 $n$ 位无符号整数除法运算,最大的商为 $111\cdots 11/000\cdots 01 = 111\cdots 11$,显然,运算结果没有产生溢出。因此,两个 $n$ 位无符号整数除法运算肯定不会溢出,无须通过得到最高位商(第 $n$ 位商 $q_n$)来判断溢出,也即只要有 $n$ 次循环执行“加/减”和“左移”操作,就能得到第 $n - 1 \sim 0$ 位的 $n$ 位商 $(q_{n-1} \sim q_0)$。因此,选项 C 的说法是错误的。 # 第28题 对于 IEEE 754 单精度浮点加减运算,在对阶过程中,需要计算两个阶码 $E_x$ 和 $E_y$ 之差的补码 $[\Delta E]_W$,$[\Delta E]_W = [E_x - E_y]_W = [E_x]_W + [-[E_y]_W]$。假定 $[E_x]_W$、$[- [E_y]_W]$ 和 $[\Delta E]_W$ 的最高有效位分别记为 $E_{xz}, E_{yz}$ 和 $E_{bz}$,若 $\Delta E \geqslant 128$,则 $[\Delta E]_W$ 发生正溢出,此时 $E_{bz}$ 为 1,而 $E_x$ 一定为正数,即 $E_{xz} = 1$,$E_y$ 一定为负数,即 $[E_y]_W$ 的符号位为 0,计算 $[- [E_y]_W]$ 时,对 $[E_y]_W$ 的各位取反、末位加 1,从而得到 $E_{yz} = 1$,综合起来的逻辑表达式就是 $E_{xz} E_{yz} E_{bz}$;若 $\Delta E \leqslant -129$,则 $[\Delta E]_W$ 发生负溢出,此时 $E_{bz}$ 为 0,而 $E_x$ 一定为负数,即 $E_{xz} = 0$,$E_y$ 一定为正数,即 $[E_y]_W$ 的符号位为 1,计算 $[- [E_y]_W]$ 时,对 $[E_y]_W$ 的各位取反、末位加 1,从而得到 $E_{yz} = 0$,综合起来的逻辑表达式就是 $\overline{E_{xz}} \overline{E_{yz}} \overline{E_{bz}}$,因此,Overflow = $\overline{E_{xz}} \overline{E_{yz}} \overline{E_{bz}} + \overline{E_{xz}} \overline{E_{yz}} \overline{E_{bz}}$。 # 第29题 假设浮点数 $x$ 和 $y$ 的机器数分别记为 $[x]_{\text{浮}}$ 和 $[y]_{\text{浮}}$,$[\Delta E]_W = [E_x - E_y]_W = [E_x]_W + [-[E_y]_W]$,将 $[E_x]_W$、$[E_y]_W$ 和 $[\Delta E]_W$ 的最高有效位分别记为 $E_{xz}, E_{yz}$ 和 $E_{bz}$。当 $[\Delta E]_W$ <!-- page: 63 --> 发生溢出时,若 $\Delta E \geqslant 128$,说明 $x$ 的阶比 $y$ 的阶至少大 $128$,$y$ 的尾数至少要向右移 128 位,因而 $y$ 被 $x$ “吃掉”,结果应该取 $x$,此时 $E_{xx} = 1$;若 $\Delta E \leqslant -129$,说明 $y$ 的阶比 $x$ 的阶至少大 $129$,$x$ 的尾数至少要向右移 129 位,因而 $x$ 被 $y$ “吃掉”,结果应该取 $y$,此时 $E_{xx} = 0$。因此,选项 B 是正确的。