1、计算机学科专业基础综合组成原理-13 及答案解析(总分:100.00,做题时间:90 分钟)一、单项选择题(总题数:40,分数:100.00)1.一个 C 语言程序在一台 32 位机器上运行。程序中定义了三个变量 x、y、z,其中 x 和 z 为 int 型,y为 short 型。当 x=127、y=-9 时,执行赋值语句 z=x+y 后,x、y、z 的值分别是_。(分数:2.50)A.x=0000007FH,y=FFF9H,z=00000076HB.x=0000007FH,y=FFF9H,z=FFFF0076HC.x=0000007FH,y=FFF7H,z=FFFF0076HD.x=0000
2、007FH,y=FFF7H,z=00000076H2.假定有 4 个整数用 8 位补码分别表示 r1=FEH、r2=F2H、r3=90H、r4=F8H,若将运算结果存放在一个 8位寄存器中,则下列运算会发生溢出的是_。(分数:2.50)A.r1r2B.r2r3C.r1r4D.r2r43.某计算机存储器按字节编址,采用小端方式存放数据。假定编译器规定 int 和 short 型长度分别为 32位和 16 位,并且数据按边界对齐存储。某 C 语言程序段如下: struct int a; char b; shott c; record; record.a=273; 若 record 变量的首地址为
3、0xC008,则地址 0xC008 中内容及 record.c 的地址分别为_。(分数:2.50)A.0x00、0xC00DB.0x00、0xC00EC.0x11、0xC00DD.0x11、0xC00E4.假定编译器规定 int 和 short 类型长度分别为 32 位和 16 位,执行下列 C 语言语句 unsigned short x=65530; unsigned int y=x; 得到 y 的机器数为_。(分数:2.50)A.0000 7FFAHB.0000 FFFAHC.FFFF 7FFAHD.FFFF FFFAH5.有如下 C 语言程序段 short si=-32767; unsi
4、gned Short usi=si; 执行上述两条语句后,usi 的值为_。(分数:2.50)A.-32767B.32767C.32768D.327696.对真值 0 表示形式唯一的机器数是_。(分数:2.50)A.原码B.补码和移码C.反码D.以上都不对7.若X 补 =0.1101010,则X 原 =_。(分数:2.50)A.1.0010101B.1.01110110C.0.0010110D.0.11010108.若X 补 =1.1101010,则X 原 =_。(分数:2.50)A.1.0010101B.1.0010110C.0.0010110D.0.11010109.如果 X 为负数,由X
5、 补 求-X 补 是将_。(分数:2.50)A.补各值保持不变B.补符号位变反,其他各位不变C.补除符号位外,各位变反,末位加 1D.补连同符号位一起变反,末位加 110.8 位原码能表示的不同数据有_。(分数:2.50)A.15B.16C.255D.25611.定点小数反码X反=x 0 .x 1 x n 表示的数值范围是_。 A.-1+2-nx1-2 -n B.-1+2-nx1-2 -n C.-1+2-nx1-2 -n D.-1+2-nx1-2 -n(分数:2.50)A.B.C.D.12.一个 n+1 位整数 x 原码的数值范围是_。 A.-2n+1x2 n-1 B.-2n+1x2 n-1
6、C.-2n+1x2 n-1 D.-2n+1x2 n-1(分数:2.50)A.B.C.D.13.补码定点整数 0101 0101 左移两位后的值为_。(分数:2.50)A.0100 0111B.0101 0100C.0100 0110D.0101 010114.补码定点整数 1001 0101 右移 1 位后的值为_。(分数:2.50)A.0100 1010B.01001010 1C.1000 1010D.1100 101015.计算机内部的定点数大多用补码表示,以下是一些关于补码特点的叙述: 零的表示是唯一的 符号位可以和数值部分一起参加运算 和其真值的对应关系简单、直观 减法可用加法来实现
7、在以上叙述中,_是补码表示的特点。(分数:2.50)A.和B.和C.和和D.和和16.n 位定点整数(有符号)表示的最大值是_。 A.2n B.2n-1 C.2n-1 D.2n-1-1(分数:2.50)A.B.C.D.17.对于相同位数(设为 N 位,不考虑符号位)的二进制补码小数和十进制小数,二进制小数能表示的数的个数/十进制小数所能表示数的个数为_。 A.(0.2)N B.(0.2)N-1 C.(0.02)N D.(0.02)N-1(分数:2.50)A.B.C.D.18.若定点整数 64 位,含一位符号位,采用补码表示,所能表示的绝对值最大负数为_。 A.-264 B.-(264-1) C
8、.-263 D.-(263-1)(分数:2.50)A.B.C.D.19.5 位二进制定点小数,用补码表示时,最小负数是_。(分数:2.50)A.0.111B.1.0001C.1.111D.1.000020.下列关于补码和移码关系的叙述中,_是不正确的。(分数:2.50)A.相同位数的补码和移码表示具有相同的数据表示范围B.零的补码和移码表示相同C.同一个数的补码和移码表示,其数值部分相同,而符号相反D.一般用移码表示浮点数的阶,而补码表示定点整数21.设x补 = 1.x 1 x 2 x 3 x 4 ,当满足_时,x-1/2 成立。(分数:2.50)A.x1 必须为 1,x2x3x4 至少有一个
9、为 1B.x1 必须为 1,x2x3x4 任意C.x1 必须为 0,x2x3x4 至少有一个为 1D.x1 必须为 0,x2x3x4 任意22.若x 补 =1,x 1 x 2 x 3 x 4 x 5 x 6 ,其中 x i 取 0 或 1,若要 x-32,应当满足_。(分数:2.50)A.x1 为 0,其他各位任意B.x1 为 1,其他各位任意C.x1 为 1,x2x6 中至少有一位为 1D.x1 为 0,x2x6 中至少有一位为 123.设 x 为整数,x 补 =1,x 1 x 2 x 3 x 4 x 5 ,若要 x-16,x 1 x 5 应满足的条件是_。(分数:2.50)A.x1x5 至
10、少有一个为 1B.x1 必须为 0,x2x5 至少有一个为 1C.x1 必须为 0,x2x5 任意D.x1 必须为 1,x2x5 任意24.已知定点小数 X 的补码为 1.x 1 x 2 x 3 ,且 X-0.75,则必有_。(分数:2.50)A.x1=1,x2=0,x3=1B.x1=1C.x1=0,且 x2x3 不全为 1D.x1=0,x2=0,x3=025.一个 8 位寄存器内的数值为 11001010,进位标志寄存器 C 为 0,若将此 8 位寄存器循环左移(不带进位位)1 位,则该 8 位寄存器和标志寄存器内数值分别为_。(分数:2.50)A.10010100 1B.10010101
11、0C.10010101 1D.10010100 026.设机器数字长 8 位(含 1 位符号位),若机器数 BAH 为原码,算术左移 1 位和算术右移 1 位分别得_。(分数:2.50)A.F4H,EDHB.B4H,6DHC.F4H,9DHD.B5H,EDH27.设 x 为真值,x * 为其绝对值,满足-x * 补 =-x 补 ,当且仅当_。(分数:2.50)A.x 任意B.x 为正数C.x 为负数D.以上说法都不对28.16 位补码 0x8FA0 扩展为 32 位应该是_。(分数:2.50)A.0x0000 8FA0B.0xFFFF 8FA0C.0xFFFF FFA0D.0x8000 8FA
12、029.在定点运算器中,无论采用双符号位还是单符号位,必须有_。(分数:2.50)A.译码电路,它一般用“与非”门来实现B.编码电路,它一般用“或非”门来实现C.溢出判断电路,它一般用“异或”门来实现D.移位电路,它一般用“与或非”门来实现30.下列说法中正确的是_。 在计算机中,所表示的数有时会发生溢出,其根本原因是计算机的字长有限 8421 码就是二进制数 一个正数的补码和这个数的原码表示一样,而正数的反码是原码各位取反 设有两个正的规格化浮点数:N 1 =2 m M 1 ,N 2 =2 n M 2 ,若 mn,则有 N 1 N 2(分数:2.50)A.、B.、C.、D.、31.关于模 4
13、 补码,下列说法正确的是_。(分数:2.50)A.模 4 补码和模 2 补码不同,它更容易检查乘除运算中的溢出问题B.每个模 4 补码存储时只需一个符号位C.存储每个模 4 补码需要两个符号位D.模 4 补码,在算术与逻辑部件中为一个符号位32.假定一个十进制数为-66,按补码形式存放在一个 8 位寄存器中,该寄存器的内容用十六进制表示为_。(分数:2.50)A.C2HB.BEHC.BDHD.42H33.设机器数采用补码表示(含 1 位符号位),若寄存器内容为 9BH,则对应的十进制数为_。(分数:2.50)A.-27B.-97C.-101D.15534.若寄存器内容为 10000000,若它
14、等于-0,则为_。(分数:2.50)A.原码B.补码C.反码D.移码35.若寄存器内容为 11111111,若它等于+127,则为_。(分数:2.50)A.反码B.补码C.原码D.移码36.若寄存器内容为 11111111,若它等于-1,则为_。(分数:2.50)A.原码B.补码C.反码D.移码37.若寄存器内容为 00000000,若它等于-128,则为_。(分数:2.50)A.原码B.补码C.反码D.移码38.若二进制定点小数真值是-0.1101,机器表示为 1.0010,则为_。(分数:2.50)A.原码B.补码C.反码D.移码39.下列为 8 位移码机器数x 移 ,当求-x 移 时,_
15、将会发生溢出。(分数:2.50)A.11111111B.00000000C.10000000D.0111111140.若采用双符号位,则两个正数相加产生溢出的特征时,双符号位为_。(分数:2.50)A.00B.01C.10D.11计算机学科专业基础综合组成原理-13 答案解析(总分:100.00,做题时间:90 分钟)一、单项选择题(总题数:40,分数:100.00)1.一个 C 语言程序在一台 32 位机器上运行。程序中定义了三个变量 x、y、z,其中 x 和 z 为 int 型,y为 short 型。当 x=127、y=-9 时,执行赋值语句 z=x+y 后,x、y、z 的值分别是_。(分
16、数:2.50)A.x=0000007FH,y=FFF9H,z=00000076HB.x=0000007FH,y=FFF9H,z=FFFF0076HC.x=0000007FH,y=FFF7H,z=FFFF0076HD.x=0000007FH,y=FFF7H,z=00000076H 解析:解析 结合题干及选项可知,int 为 32 位,short 为 16 位:又因 C 语言的数据在内存中为补码形式,故 x、y 的机器数写为 0000007F、FFF7H。执行 z=x+y 时,由于 x 为 int 型,y 为 short 型,故需将 y的类型强制转换为 int 型,在机器中通过符号位扩展实现,由于
17、 y 的符号位为 1,故在 y 的前面添加 16个 1,即可将 y 强制转换为 int 型,其十六进制形式为 FFFFFFF7H。然后执行加法,即0000007FH+FFFFFFF7H=00000076H,其中最高位的进位 1 自然丢弃。 数据转换时应注意的问题有: 1)有符号数和无符号数之间的转换。例如,由 signed 型转化为等长 unsigned 型数据时,符号位成为数据的一部分,也就是说,负数转化为无符号数数值将发生变化。同理,由 unsigned 转化为 signed 时最高位作为符号位,也可能发生数值变化。 2)数据的截取与保留。当一个浮点数转化为整数时,浮点数的小数部分全部舍去
18、,并按整数形式存储。但浮点数的整数部分不能超过整型数允许的最大范围。否则溢出。 3)数据转换中的精度丢失。四舍五入会丢失一些精度,截去小数也会丢失一些精度。此外,数据由 long型转换为 float 或 double 型时,有可能在存储时不能准确地表示该长整数的有效数字,精度也会受到影响。 4)数据转换结果的不确定性。当较长的整数转换为较短的整数时,要将高位截去,例如,long 型转换为short 型,只将低 16 位送过去,这样就会产生很大的误差。浮点数降格时,如 double 型转换为 float 型,当数值超过了 float 型的表示范围时,所得到的结果将是不确定的。 对于此问题在常见问
19、题与知识点的第 2 问中有另一角度的解析。2.假定有 4 个整数用 8 位补码分别表示 r1=FEH、r2=F2H、r3=90H、r4=F8H,若将运算结果存放在一个 8位寄存器中,则下列运算会发生溢出的是_。(分数:2.50)A.r1r2B.r2r3 C.r1r4D.r2r4解析:解析 本题的真正意图是考查补码的表示范围,而不是补码的乘法运算。若采用补码乘法规则计算出 4 个选项,是费力不讨好的做法,而且极容易出错。8 位补码所能表示的整数范围为-128+127。将4 个数全部转换为十进制:r 1 =-2,r 2 =-14,r 3 =-112,r 4 =-8,得 r 2 r 3 =1568,
20、远超出了表示范围,发生溢出。3.某计算机存储器按字节编址,采用小端方式存放数据。假定编译器规定 int 和 short 型长度分别为 32位和 16 位,并且数据按边界对齐存储。某 C 语言程序段如下: struct int a; char b; shott c; record; record.a=273; 若 record 变量的首地址为 0xC008,则地址 0xC008 中内容及 record.c 的地址分别为_。(分数:2.50)A.0x00、0xC00DB.0x00、0xC00EC.0x11、0xC00DD.0x11、0xC00E 解析:解析 尽管 record 大小为 7 个字节(
21、成员 a 有 4 个字节,成员 b 有 1 个字节,成员 c 有 2 个字节),由于数据按边界对齐方式存储,故 record 共占用 8 个字节。record.a 的十六进制表示为 0x00000111,由于采用小端方式存放数据,故地址 0xC008 中内容应为低字节 0x11;record.b 只占 1 个字节,后面的一个字节留空;record.c 占 2 个字节,故其地址为 0xC00E。 各字节的存储分配如下表所示。 地址 0xC008 0xC009 0xC00A 0xC00B 内容 record.a(0x11) record.a(0x01) record.a(0x00) record.
22、a(0x00) 地址 0xC00C 0xC00D 0xC00E 0xC00F 内容 record.b - record.c record.c 4.假定编译器规定 int 和 short 类型长度分别为 32 位和 16 位,执行下列 C 语言语句 unsigned short x=65530; unsigned int y=x; 得到 y 的机器数为_。(分数:2.50)A.0000 7FFAHB.0000 FFFAH C.FFFF 7FFAHD.FFFF FFFAH解析:解析 将一个 16 位 unsigned short 转换成 32 位形式的 unsigned int,因为都是无符号数,
23、新表示形式的高位用 0 填充。16 位无符号整数所能表示的最大值为 65535,其十六进制表示为 FFFFH,故 x的十六进制表示为 FFFFH-5H=FFFAH,所以 y 的十六进制表示为 0000 FFFAH。 排除法:先直接排除 C、D,然后分析余下选项的特征。由于 A、B 的值相差几乎近 1 倍,可采用算出 0001 0000H(接近 B 且好算的数)的值,再推断出答案。5.有如下 C 语言程序段 short si=-32767; unsigned Short usi=si; 执行上述两条语句后,usi 的值为_。(分数:2.50)A.-32767B.32767C.32768D.327
24、69 解析:解析 结合题干及选项可知,short 为 16 位。因 C 语言中的数据在内存中为补码表示形式,si 对应的补码二进制表示为:1000 0000 0000 0001B,最前面的一位“1”为符号位,表示负数,即-32767。由 signed 型转化为等长 unsigned 型数据时,符号位成为数据的一部分,也就是说,负数转化为无符号数(即正数),其数值将发生变化。Usi 对应的补码二进制表示与 si 的表示相同,但表示正数,为 32769。6.对真值 0 表示形式唯一的机器数是_。(分数:2.50)A.原码B.补码和移码 C.反码D.以上都不对解析:解析 假设位数为 5 位(含 1
25、位符号位),+0 原 =00000,-0 原 =10000,+0 反 =00000,-0 反 =11111,+0 补 =-0 补 =00000,+0 移 =-0 移 =10000。可知,0 的补码和移码的表示是唯一的。7.若X 补 =0.1101010,则X 原 =_。(分数:2.50)A.1.0010101B.1.01110110C.0.0010110D.0.1101010 解析:解析 若 X 为正数,其原码、反码、补码相同。8.若X 补 =1.1101010,则X 原 =_。(分数:2.50)A.1.0010101B.1.0010110 C.0.0010110D.0.1101010解析:解
26、析 若 X 为负数,则其补码转换成原码的规则是“符号位不变,数值位取反,末位加 1”,即,X 原 =0010101+1=0010110。9.如果 X 为负数,由X 补 求-X 补 是将_。(分数:2.50)A.补各值保持不变B.补符号位变反,其他各位不变C.补除符号位外,各位变反,末位加 1D.补连同符号位一起变反,末位加 1 解析:解析 不论 X 是正数还是负数,由X 补 求-X 补 的方法是连同符号位一起,每位取反,末位加 1。10.8 位原码能表示的不同数据有_。(分数:2.50)A.15B.16C.255 D.256解析:解析 8 个二进制位有 2 8 =256 种不同表示。原码中 0
27、 有两种表示,故原码能表示的不同数据为2 8 -1=255。由于 0 在反码中也有两种表示,故如果题目改为反码答案也为 C。0 在补码与移码中只有一种表示,故题目如果改为补码或移码,则答案为 D。11.定点小数反码X反=x 0 .x 1 x n 表示的数值范围是_。 A.-1+2-nx1-2 -n B.-1+2-nx1-2 -n C.-1+2-nx1-2 -n D.-1+2-nx1-2 -n(分数:2.50)A.B.C. D.解析:解析 n+1 位小数反码的表示范围为-1+2 -n x1-2 -n 。12.一个 n+1 位整数 x 原码的数值范围是_。 A.-2n+1x2 n-1 B.-2n+
28、1x2 n-1 C.-2n+1x2 n-1 D.-2n+1x2 n-1(分数:2.50)A.B.C.D. 解析:解析 n+1 位整数原码的表示范围为-2 n +1x2 n -1。13.补码定点整数 0101 0101 左移两位后的值为_。(分数:2.50)A.0100 0111B.0101 0100 C.0100 0110D.0101 0101解析:解析 该数是一个正数(最高位为 0),按照算术补码移位规则,正数左右移位均添 0,且符号位不变,所以 0101 0101 左移 2 位后的值为 0101 0100。14.补码定点整数 1001 0101 右移 1 位后的值为_。(分数:2.50)A
29、.0100 1010B.01001010 1C.1000 1010D.1100 1010 解析:解析 该数是一个负数(最高位为 1),按照算术补码移位规则,负数右移添 1,负数左移添 0,所以 1001 0101 右移 1 位后的值为 1100 1010。 算术移位过程中符号位不变,空位添补规则见下表。 不同机器数算术移位后的空位添补规则 码 制 添补代码 正数 原码、补码、反码 0 原码 0 左移添 0 补码 右移添 1 负数 反码 1 15.计算机内部的定点数大多用补码表示,以下是一些关于补码特点的叙述: 零的表示是唯一的 符号位可以和数值部分一起参加运算 和其真值的对应关系简单、直观 减
30、法可用加法来实现 在以上叙述中,_是补码表示的特点。(分数:2.50)A.和B.和C.和和D.和和 解析:解析 +0 补 -0 补 是相同的,所以正确。在进行补码定点数的加减运算时,符号作为数的一部分参加运算,所以正确,A 补 -B 补 =A 补 +B 补 ,即将减法采用加法实现,所以正确。实际上,补码和其真值的对应关系远不如原码和其真值的对应关系简单直观,所以错误。16.n 位定点整数(有符号)表示的最大值是_。 A.2n B.2n-1 C.2n-1 D.2n-1-1(分数:2.50)A.B.C.D. 解析:解析 n 位二进制有符号定点整数,数值位只有 n-1 位最高位为符号位,所以最大值为
31、 2 n-1 -1。17.对于相同位数(设为 N 位,不考虑符号位)的二进制补码小数和十进制小数,二进制小数能表示的数的个数/十进制小数所能表示数的个数为_。 A.(0.2)N B.(0.2)N-1 C.(0.02)N D.(0.02)N-1(分数:2.50)A. B.C.D.解析:解析 N 位的二进制小数可以表示的数的个数为 1+2 0 +2 1 +2 N-1 =2 N ,而十进制小数能表示的数的个数为 10 N ,二者的商为(0.2) N 。这也是为何在计算机的运算中会出现误差情况的原因,这表明了仅仅有(0.2) N 概率的十进制数可以精确地用二进制表示。18.若定点整数 64 位,含一位
32、符号位,采用补码表示,所能表示的绝对值最大负数为_。 A.-264 B.-(264-1) C.-263 D.-(263-1)(分数:2.50)A.B.C. D.解析:解析 对于长度为 n+1(含一位符号位)定点整数 x,用补码表示时,x 绝对值最大负数 =-2 n ,这里n=63。19.5 位二进制定点小数,用补码表示时,最小负数是_。(分数:2.50)A.0.111B.1.0001C.1.111D.1.0000 解析:解析 5 位二进制定点小数,用补码表示时,最小负数表示为 1.0000。若真值为纯小数,它的补码形式为 x S x 1 x 2 x n ,其中 x S 表示符号位。当 x S
33、=1,x 1 x 2 x n 均等于 0 时,X 为最小负数(绝对值最大的负数),其真值等于-1。20.下列关于补码和移码关系的叙述中,_是不正确的。(分数:2.50)A.相同位数的补码和移码表示具有相同的数据表示范围B.零的补码和移码表示相同 C.同一个数的补码和移码表示,其数值部分相同,而符号相反D.一般用移码表示浮点数的阶,而补码表示定点整数解析:解析 以机器字长 5 位为例,0 补 =00000,0 移 =2 4 +0=10000,0 补 0 移 ,表示不相同,但在补码或移码中的表示形式是唯一的。21.设x补 = 1.x 1 x 2 x 3 x 4 ,当满足_时,x-1/2 成立。(分
34、数:2.50)A.x1 必须为 1,x2x3x4 至少有一个为 1B.x1 必须为 1,x2x3x4 任意C.x1 必须为 0,x2x3x4 至少有一个为 1D.x1 必须为 0,x2x3x4 任意 解析:解析 x 补 的符号位为 1,所以 x 是负数。-1/2 补 为 1.1000,采用补码表示时,如果符号位相同,则数值位越大,码值越大。所以要使 x-1/2 成立,x 1 必须为 0,而 x 2 x 4 任意。 另解:因为-1 补 为 1.0000,直接排除 A、B、C,只可能选 D。解答此类题时,应有意识地联想到几个特殊值的表示,以迅速得出答案、或检验答案的正确性。22.若x 补 =1,x
35、 1 x 2 x 3 x 4 x 5 x 6 ,其中 x i 取 0 或 1,若要 x-32,应当满足_。(分数:2.50)A.x1 为 0,其他各位任意B.x1 为 1,其他各位任意C.x1 为 1,x2x6 中至少有一位为 1 D.x1 为 0,x2x6 中至少有一位为 1解析:解析 x 补 的符号位为 1,所以 x 一定是负数。绝对值越小,数值越大,所以,要满足 x-32,则 x 的绝对值必须小于 32。因此,x 1 为 1,x 2 x 6 中至少有一位为 1,这样,各位取反末尾加1 后,x 1 一定为 0,x 2 x 6 中至少有一位为 1,这使得 x 的绝对值保证小于 32。 当使用
36、补码表示时,符号位相同,则数值位越大码值越大。23.设 x 为整数,x 补 =1,x 1 x 2 x 3 x 4 x 5 ,若要 x-16,x 1 x 5 应满足的条件是_。(分数:2.50)A.x1x5 至少有一个为 1B.x1 必须为 0,x2x5 至少有一个为 1C.x1 必须为 0,x2x5 任意 D.x1 必须为 1,x2x5 任意解析:解析 对补码进行按位取反末尾加 1 得到原码,那么-16 的原码为 1,10000,则小于-16 的原码中 x 2 x 5 至少有一个为 1,此时按位取反,末位加 1,有 x 1 必为 0,而 x 2 x 5 任意。24.已知定点小数 X 的补码为
37、1.x 1 x 2 x 3 ,且 X-0.75,则必有_。(分数:2.50)A.x1=1,x2=0,x3=1B.x1=1C.x1=0,且 x2x3 不全为 1 D.x1=0,x2=0,x3=0解析:解析 对于定点小数而言,当 X-0.75,意味着-1X-0.75。 X=(-0.75) 10 =(-0.110) 2 ,其补码表示为 1.010。 写出相应定点小数的补码表示形式: (1.000) 2 =(-1) 10 (1.001) 2 =(-0.875) 10 (1.010) 2 =(-0.75) 10 发现规律:x 1 =0,且 x 2 x 3 不全为 1。25.一个 8 位寄存器内的数值为
38、11001010,进位标志寄存器 C 为 0,若将此 8 位寄存器循环左移(不带进位位)1 位,则该 8 位寄存器和标志寄存器内数值分别为_。(分数:2.50)A.10010100 1B.10010101 0C.10010101 1 D.10010100 0解析:解析 不带进位位的循环左移将最高位进入最低位和标志寄存器 C 位。26.设机器数字长 8 位(含 1 位符号位),若机器数 BAH 为原码,算术左移 1 位和算术右移 1 位分别得_。(分数:2.50)A.F4H,EDHB.B4H,6DHC.F4H,9DH D.B5H,EDH解析:解析 原码左、右移均补 0,且符号位不变(注意与补码移
39、位的区别)。BAH=(1011 10 10) 2 ,算术左移 1 位得(1111 0100) 2 =F4H,算术右移 1 位得(1001 1101) 2 =9DH。27.设 x 为真值,x * 为其绝对值,满足-x * 补 =-x 补 ,当且仅当_。(分数:2.50)A.x 任意B.x 为正数C.x 为负数D.以上说法都不对 解析:解析 当 x 为 0 或者是正数时,满足-x * 补 =-x 补 ,B 为充分条件,故 B 错误。而 x 为负数时,-x 为正数,而-x * 为负数,而补码的表示是唯一的,显然二者不等,故 C 错误。28.16 位补码 0x8FA0 扩展为 32 位应该是_。(分数
40、:2.50)A.0x0000 8FA0B.0xFFFF 8FA0 C.0xFFFF FFA0D.0x8000 8FA0解析:解析 16 位扩展为 32 位,符号位不变,附加位是符号位的扩展。这个数是一个负数,需用 1 来填补附加位。A 是一个正数,C 的数值位发生变化,D 用 0 来填充附加位,均不正确。29.在定点运算器中,无论采用双符号位还是单符号位,必须有_。(分数:2.50)A.译码电路,它一般用“与非”门来实现B.编码电路,它一般用“或非”门来实现C.溢出判断电路,它一般用“异或”门来实现 D.移位电路,它一般用“与或非”门来实现解析:解析 三种溢出判别方法,均须有溢出判别电路,可用
41、“异或”门来实现。30.下列说法中正确的是_。 在计算机中,所表示的数有时会发生溢出,其根本原因是计算机的字长有限 8421 码就是二进制数 一个正数的补码和这个数的原码表示一样,而正数的反码是原码各位取反 设有两个正的规格化浮点数:N 1 =2 m M 1 ,N 2 =2 n M 2 ,若 mn,则有 N 1 N 2(分数:2.50)A.、B.、C.、D.、 解析:解析 正确;8421 码是十进制数的编码,错误;正数的原码、反码和补码都相同,错误;因为是规格化正浮点数,所以 M 1 、M 2 均为 0.1xx 形式,有 N 1 阶码至少比 N 2 大 1,所以 N 1 N 2 ,正确。31.
42、关于模 4 补码,下列说法正确的是_。(分数:2.50)A.模 4 补码和模 2 补码不同,它更容易检查乘除运算中的溢出问题B.每个模 4 补码存储时只需一个符号位 C.存储每个模 4 补码需要两个符号位D.模 4 补码,在算术与逻辑部件中为一个符号位解析:解析 模 4 补码具有模 2 补码的全部优点且更易检查加减运算中的溢出问题,A 错误。需要注意的是,存储模 4 补码仅需一个符号位,因为任何一个正确的数值,模 4 补码的两个符号位总是相同的,B正确。只在把两个模 4 补码的数送往 ALU 完成加减运算时,才把每个数的符号位的值同时送到 ALU 的双符号位中,即只在 ALU 中采用双符号位,
43、C、D 错误。32.假定一个十进制数为-66,按补码形式存放在一个 8 位寄存器中,该寄存器的内容用十六进制表示为_。(分数:2.50)A.C2HB.BEH C.BDHD.42H解析:解析 x=-66 用二进制表示,x 原 =11000010,则有x 补 =10111110=BEH。33.设机器数采用补码表示(含 1 位符号位),若寄存器内容为 9BH,则对应的十进制数为_。(分数:2.50)A.-27B.-97C.-101 D.155解析:解析 9BH=(1001 1011) 2 ,最高位的 1 表示负数,故其真值=(11100101) 2 =(64+32+4+1)=-101。34.若寄存器
44、内容为 10000000,若它等于-0,则为_。(分数:2.50)A.原码 B.补码C.反码D.移码解析:解析 其值等于-0,说明只能是原码或反码(因为补码和移码表示零时是唯一的)-0 原 =10000000,-0 反 =11111111。35.若寄存器内容为 11111111,若它等于+127,则为_。(分数:2.50)A.反码B.补码C.原码D.移码 解析:解析 这里寄存器长度为 8,+127 原 =+127 反 =+127 补 =01111111,又知同一数值的移码和补码除最高位相反外,其他各位相同,则+127 移 =11111111。或者,+127 移 =2 7 +01111111=1
45、1111111。36.若寄存器内容为 11111111,若它等于-1,则为_。(分数:2.50)A.原码B.补码 C.反码D.移码解析:解析 这里寄存器长度为 8,-1 补 =10000001 补 =11111111。37.若寄存器内容为 00000000,若它等于-128,则为_。(分数:2.50)A.原码B.补码C.反码D.移码 解析:解析 这里寄存器长度为 8,-128 移 =2 7 +(-10000000)=00000000。38.若二进制定点小数真值是-0.1101,机器表示为 1.0010,则为_。(分数:2.50)A.原码B.补码C.反码 D.移码解析:解析 真值-0.1101,
46、对应的原码表示为 1.1101,补码表示为 1.0011,反码表示为 1.0010,移码通常用于表示阶码,不用来表示定点小数。39.下列为 8 位移码机器数x 移 ,当求-x 移 时,_将会发生溢出。(分数:2.50)A.11111111B.00000000 C.10000000D.01111111解析:解析 选项 B 对应 8 位最小的值-128,而-x=128 发生溢出,故无法表示其移码。40.若采用双符号位,则两个正数相加产生溢出的特征时,双符号位为_。(分数:2.50)A.00B.01 C.10D.11解析:解析 采用双符号位时,第一符号位表示最终结果的符号,第二符号位表示运算结果是否溢出。若第二位和第一位符号相同,则未溢出;不同,则溢出。若发生正溢出,则双符号位为 01,若发生负溢出,则双符号位为 10。