计算机学科专业基础综合组成原理计算机系统概述数据的表示和运算二.docx
《计算机学科专业基础综合组成原理计算机系统概述数据的表示和运算二.docx》由会员分享,可在线阅读,更多相关《计算机学科专业基础综合组成原理计算机系统概述数据的表示和运算二.docx(26页珍藏版)》请在冰点文库上搜索。
计算机学科专业基础综合组成原理计算机系统概述数据的表示和运算二
计算机学科专业基础综合组成原理-计算机系统概述、数据的表示和运算
(二)
(总分:
117.00,做题时间:
90分钟)
一、{{B}}单项选择题{{/B}}(总题数:
35,分数:
70.00)
1.某机器字长为8位,采用原码表示法(其中一位为符号位),则机器数所能表示的范围是______。
∙A.-127~+127
∙B.-127~+128
∙C.-128~+127
∙D.-128~+128
(分数:
2.00)
A. √
B.
C.
D.
解析:
[解析]假设机器数字长为n位,包含一位符号位,则原码、补码、反码的表示范围见下表:
{{B}}表机器数的原码、补码、反码的表示范围{{/B}}
原码
-(2n-1-1)~(2n-1-1)
补码
-2n-1~(2n-1-1)
反码
-(2n-1-1)~(2n-1-1)
2.十进制数-0.3125的8位移码编码为______。
∙A.D8H
∙B.58H
∙C.A8H
∙D.28H
(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]首先写出0.3125的二进制表示形式为10101000(首位为符号位,小数点隐藏在符号位之后),然后可以直接写出补码的表示形式为11011000,移码即为补码的符号位取反,即01011000,转换成十六进制数为58H。
3.下列为8位移码机器数[x]移,当求[-x]移时,______将会发生溢出。
∙A.11111111
∙B.00000000
∙C.10000000
∙D.01111111
(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]00000000移码表示的真值为-128,即x=-128;可以从补码的角度理解,补码就是移码的符号位取反,即10000000,因此是-128。
而-x=+128,超出了8位移码所能表示的最大正数+127,故溢出,其他选项以此类推。
4.定点补码加法运算中,______时表明运算结果必定发生了溢出。
∙A.双符号位相同
∙B.双符号位不同
∙C.正负相加
∙D.两个负数相加
(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]判断定点数补码运算是否溢出,分为3种情况,其中最常用的一种:
采用双符号位,无论加减法,当最后结果的两位符号位不同时,则表明发生溢出。
其他两种在前面知识点中已经详细讲解过了。
C选项一定不会发生溢出,D选项可能溢出,可能不溢出。
5.[x]补=1.x1x2x3x4,当满足下列______时,x>-1/2成立。
∙A.x1必须为1,x2~x4至少有一个为1
∙B.x1必须为1,x2~x4任意
∙C.x1必须为0,x2~x4至少有一个为1
∙D.x1必须为0,x2~x4任意
(分数:
2.00)
A. √
B.
C.
D.
解析:
[解析]首先,-1/2的补码表示为1.1000。
其次,需要引出一个结论:
当使用补码表示时,如果符号位相同,则数值位越大,码值越大(记住即可)。
因此,要使得x>-1/2成立,x1必须为1,x2~x4至少有一个为1。
6.设x为整数,[x]补=1,x1x2x3x4x5,若要x<-16,x1~x5应满足的条件是______。
∙A.x1~x5至少有一个为1
∙B.x1必须为1,x2~x5至少有一个为1
∙C.x1必须为0,x2~x5至少有一个为1
∙D.x1必须为0,x2~x5任意
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]首先-16的补码是1,10000(第一个1为符号位),再次引用该结论:
当使用补码表示时,如果符号位相同,则数值位越大,码值越大。
因此,要使得x<-16,第一位必须为0,后面则可以任意,即1,0××××,故选D。
7.一个C语言程序在一台32位机器上运行,程序中定义了3个变量x、y、z,其中x和z是int型,y为short型。
当x=127,y=-9时,执行赋值语句z=x+y后,x、y、z的值分别是______。
∙A.x=0000007FH,y=FFF9H,z=00000076H
∙B.x=0000007FH,y=FFF9H,z=FFFF0076H
∙C.x=0000007FH,y=FFF7H,z=FFFF0076H
∙D.x=0000007FH,y=FFF7H,z=00000076H
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]x和z为int型,说明x和z都占32位的存储空间。
127换成二进制为00000000000000000000000001111111,对应的十六进制为0000007FH。
z进行运算后变成118,换成二进制为00000000000000000000000001110110,对应的十六进制为00000076H。
另外,因为y为short型,所以y所占存储空间为16位,且在计算机中使用补码表示(默认的)。
-9的二进制表示为1000000000001001,因此-9的补码表示为1111111111110111(符号位不变,其余位取反加1),对应的十六进制为FFF7H。
8.假定有4个整数用8位补码分别表示:
r1=FEH,r2=F2H,r3=90H,r4=F8H,若将运算结果存放在一个8位寄存器中,则下列运算会发生溢出的是______。
∙A.r1×r2
∙B.r2×r3
∙C.r1×r4
∙D.r2×r4
(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]本题看上去较为复杂,因为牵涉到乘法运算。
但本题的考查目的在于对补码的范围和溢出的理解。
补码的最高位是符号位,相乘中只参与正负运算;溢出就是(本题中是8位)无法表示得到的结果。
因此,如果按照书本上的方式来算出每个结果再判定,这肯定会浪费时间。
正确的解题方法如下:
8位补码所表示的十进制范围为-128~+127,可把4个十六进制数全部转换为十进制,进行口算相乘(适合数字很小的运算),得出的结果中,最大的就是会溢出的。
r1=FEH=11111110,符号位为1,说明为负数。
除符号位取反加1,即100000010,故r1=-2。
同理可得,r2=-14,r3=-112,r4=-8,故r1×r2=28r2×r3=1568r1×r4=16r2×r4=112因此,只有r2×r3超出了范围-128~+127。
9.假设寄存器的内容为00000000,若它等于-128,则该机器采用了______。
∙A.原码
∙B.补码
∙C.反码
∙D.移码
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]当使用8位补码来表示-128时,是10000000(假设采用一位符号位,两位类似),而移码恰好是补码的符号位取反,结果为00000000。
10.在定点机中执行算术运算时会产生溢出,其根本原因是______。
∙A.主存容量不够
∙B.运算结果无法表示
∙C.操作数地址过大
∙D.栈溢出
(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]此题属于概念题,定点机中执行算术运算时会产生溢出的根本原因是运算所得结果的数值超出了所能表示的范围。
11.当定点运算发生溢出时,应______。
∙A.向左规格化
∙B.向右规格化
∙C.舍入处理
∙D.发出出错信息
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]定点数运算如果发生溢出,则必须发出出错信息进行中断处理,不要和浮点数的尾数溢出混淆。
12.下列关于定点数原码一位乘算法的描述正确的是______。
Ⅰ.符号位不参加运算,根据数值位的乘法运算结果确定结果的符号位
Ⅱ.在原码一位乘算法过程中,所有移位均是算术移位操作
Ⅲ.假设两个n位数进行原码一位乘,部分积至少需要使用n位寄存器
∙A.Ⅱ、Ⅲ
∙B.只有Ⅱ
∙C.只有Ⅲ
∙D.全错
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]Ⅰ:
在原码一位乘中,符号位是不参加运算的,结果的符号位是被乘数的符号位和乘数的符号位“异或”的结果,故Ⅰ错误。
Ⅱ:
在原码一位乘算法中,由于参与操作的数是真值的绝对值,因此没有正负可言,故在原码一位乘法中运算过程中所有的移位均是逻辑移位操作,即在高位添加0,故Ⅱ错误。
Ⅲ:
由于在部分积相加中,可能导致两个小数相加大于1,因此部分积至少需要使用n+1位寄存器,故Ⅲ错误。
综上所述,Ⅰ、Ⅱ、Ⅲ全错。
13.在补码一位乘中,若判断位YnYn+1=01,则应执行的操作为______。
∙A.原部分积加[-x]补,然后右移一位
∙B.原部分积加[x]补,然后右移一位
∙C.原部分积加[-x]补,然后左移一位
∙D.原部分积加[x]补,然后左移一位
(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]在前面知识点讲解中,总结了该操作的简单记忆方式,即假设yi+1-yi=a,那么对应的操作就是部分积先加上a*[x]补再右移一位。
注:
减[x]补,就是加上[-x]补。
此题中,yi+1-yi=1,故原部分积加[x]补然后右移一位。
这里也要记住,一定是右移,不存在左移。
14.在原码两位乘中,符号位单独处理,参加操作的数是______。
∙A.原码
∙B.绝对值的补码
∙C.补码
∙D.绝对值
(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]此题属于概念题,在前面知识点讲解中,多次强调原码乘法采用的是绝对值的补码。
15.在补码加减交替除法中,参加操作的数和商符分别是______。
∙A.绝对值的补码在形成商值的过程中自动形成
∙B.补码在形成商值的过程中自动形成
∙C.补码由两数符号位“异或”形成
∙D.绝对值的补码由两数符号位“异或”形成
(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]首先做补码除法时,符号位是和数值位一起参加运算的(故采用的肯定不是绝对值的补码),因此商符在形成商值的过程中自动形成。
16.假设机器字长为8位(含两位符号位),若机器数DAH为补码,则算术左移一位和算术右移一位分别得______。
∙A.B4HEDH
∙B.F4H6DH
∙C.B5HEDH
∙D.B4H6DH
(分数:
2.00)
A. √
B.
C.
D.
解析:
[解析]首先先将机器数DAH表示成二进制,即11011010,在前面知识点讲解中,提过两位符号位的算术移位思想,即高位符号位不参与移位,低位符号位需要参与移位,算术左移变成10110100(补码算术左移,低位补0),转成十六进制,即B4H;算术右移变成11101101(补码算术右移,高位添加符号位,此题应该补1),转成十进制,即EDH。
17.下列关于各种移位的说法中正确的是______。
Ⅰ.假设机器数采用反码表示,当机器数为负时,左移时最高数位丢0,结果出错;右移时最低数位丢0,影响精度
Ⅱ.在算术移位的情况下,补码左移的前提条件是其原最高有效位与原符号位要相同
Ⅲ.在算术移位的情况下,双符号位的移位操作中只有低符号位需要参加移位操作
∙A.Ⅰ、Ⅲ
∙B.只有Ⅱ
∙C.只有Ⅲ
∙D.Ⅰ、Ⅱ、Ⅲ
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]Ⅰ和Ⅱ看前面的总结,故Ⅰ、Ⅱ都是正确的。
Ⅲ:
为了防止左移操作造成溢出,补码的算术左移需要一个前提条件,即其原最高有效位需要与符号位相同。
对于这句话的理解,使用两位符号位更为方便。
正常情况下,采用两位符号位时,符号位为00或11表示正常。
如果最高数值位和符号位不一样,那么左移就会导致符号位为10或者01,造成溢出。
综上所述,Ⅰ、Ⅱ、Ⅲ都是正确的,故选D。
18.若浮点数用补码表示,则判断运算结果为规格化数的方法是______。
∙A.阶符与数符相同,则为规格化数
∙B.小数点后第一位为1,则为规格化数
∙C.数符与小数点后第1位数字相异,则为规格化数
∙D.数符与小数点后第1位数字相同,则为规格化数
(分数:
2.00)
A.
B.
C. √
D.
解析:
[解析]判断运算结果是否规格化和阶符没有关系。
如果是双符号位,则规格化的形式为符号位和小数部分最高位相异(由于任何正确的数,两个符号位的值总是相同的,因此前提是两位符号位要相同)。
此外,左规是当尾数运算后没有发生溢出但不符合规格化标准时进行的操作,而右规是当尾数发生溢出时进行的操作。
19.在浮点机中,判断原码规格化的形式的原则是______。
∙A.尾数的符号位与第一数位不同
∙B.尾数的第一数位为1,数符任意
∙C.尾数的符号位与第一位相同
∙D.阶符与数符不同
(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]如果浮点数采用原码表示,则尾数的规格化形式为0.1×××…×或者1.1×××…×。
20.在浮点机中,______是隐藏的。
∙A.阶码
∙B.数符
∙C.尾数
∙D.基数
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]此题属于概念题,前面重点提示过,在浮点机中,基数默认为2,故可以隐藏。
21.关于浮点数在IEEE754标准中的规定,下列说法中错误的是______。
Ⅰ.浮点数可以表示正无穷大和负无穷大两个值
Ⅱ.如果需要,也允许使用非格式化的浮点数
Ⅲ.对任何形式的浮点数都要求使用隐藏位技术
Ⅳ.对32位浮点数的阶码采用了偏移值为127的移码表示,尾数用原码表示
∙A.Ⅰ、Ⅲ
∙B.Ⅱ、Ⅲ
∙C.只有Ⅲ
∙D.Ⅰ、Ⅲ、Ⅳ
(分数:
2.00)
A.
B.
C. √
D.
解析:
[解析]Ⅰ:
这个是规定的,浮点数可以表示正无穷大和负无穷大两个值。
Ⅱ:
在特殊的场合当然可以使用非规格化的浮点数,只是在做加减运算时,如果不使用规格化浮点数,就没有办法运算。
Ⅲ:
只对规格化的浮点数才使用隐藏位技术(隐藏最高位1)。
Ⅳ:
浮点数IEEE754标准规定,对32位浮点数的阶码用偏移值为127的移码表示,尾数用原码表示。
22.浮点数加/减运算过程一般包括对阶、尾数运算、规格化、舍入和判断溢出等步骤。
设浮点数的阶码和尾数均采用补码表示,且位数分别为5位和7位(均含两位符号位)。
若有两个数,即x=27×29/32,y=25×5/8,则用浮点数加法计算x+y的最终结果是______。
∙A.001111100010
∙B.001110100010
∙C.010000010001
∙D.发生溢出
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]首先,可将x、y分别记为00,111;00.11101和00,101;00.10100,然后根据浮点数的加法步骤进行计算。
第一步:
对阶。
x、y阶码相减,即00,111-00,101=00,111+11,011=00,010,当然这里就不用计算了,从题目给出的条件也可以看出,x的阶码比y的阶码大2。
根据小阶向大阶看齐的原则,将y的阶码加2,尾数右移2位,即y变成00,111;00.00101。
第二步:
尾数相加,即00.11101+00.00101=01.00010,尾数相加结果符号位为01,故需进行右规。
第三步:
规格化。
将尾数右移1位,阶码加1,得x+y为01,000;00.10001,阶码符号位为01,说明发生溢出,且为正溢出。
23.假定变量i、f、d的数据类型分别为int、float、double(int用补码表示,float和double用IEEE754标准中的单精度和双精度浮点数据格式表示),已知i=785,f=1.5678e3,d=1.5e100,若在32位机器中执行下列关系表达式,则结果为真的是______。
Ⅰ.i==(int)(float)iⅡ.f==(float)(int)f
Ⅲ.f==(float)(double)fⅣ.(d+f)-d==f
∙A.仅Ⅰ、Ⅱ
∙B.仅Ⅰ、Ⅲ
∙C.仅Ⅱ、Ⅲ
∙D.仅Ⅲ、Ⅳ
(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]分析:
首先应当明确,int→float→double,表达数据的精度是不断提高的,并且从低到高的转换一般不损失精度,而从高到低的转换可能损失精度。
此题中需要找出结果为真的,按照前面说的规则,Ⅰ、Ⅲ很容易就可以判断出,一定是真(此时便可以写出结果,但出于严谨,继续判断);而Ⅱ因为先将一个浮点型数转换为整数,后又转为浮点型,那么精度一定会有损失,必为假;Ⅳ看上去是相等的,但在计算机的执行中,d+f会被自动转换为双精度浮点数格式,所以等式左边的精度最终为双精度,而等式右边的f为单精度,故Ⅳ为假。
24.float型数据通常用IEEE754标准中的单精度浮点数格式表示。
如果编译器将float型变量x分配在一个32位浮点寄存器FR1中,且x=-8.25,则FR1的内容是______。
∙A.C1040000H
∙B.C2420000H
∙C.C1840000H
∙D.C1C20000H
(分数:
2.00)
A. √
B.
C.
D.
解析:
[解析]此题着重考查IEEE754单精度浮点数格式。
只要知道格式,基本上就是硬套公式了。
首先,将x表示成二进制,即-1000.01=-1.00001×211。
其次,应该计算阶码(不妨设为E),根据IEEE754单精度浮点数格式有E-127=3,故E=130,换成二进制为10000010。
最后要记住,最高位“1”是被隐藏的。
因此,根据IEEE754格式:
符号(1位)+偏移的阶码(8位)+尾数(23位),即
1+10000010+0000100000000000000
转换成十六进制:
11000001000001000000000000000000,即C1040000H。
25.float类型(即IEEE754标准中的单精度浮点数格式)能表示的最大整数是______。
∙A.2126-2103
∙B.2127-2104
∙C.2127-2103
∙D.2128-2104
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]首先,最大整数肯定是正数,取数符ms=0。
其次,要使得该数最大,尾数必须最大,即尾数m=.11…1,其值为1.11…1(小数点前面的1隐藏),该数怎么转换为十进制?
因为尾数后面有23个1,显然加上一个2-23的结果为10.00…0,即2。
所以1.11…1=2-2-23。
由于采用单精度格式,因此阶码为8位(采用移码表示),最大是否为全1?
显然不行,阶码全0和全1都是不可取的,因此最大可以取到11111110,即十进制254,然后再减去偏移量127,最后可得最大指数127。
综上所述,可以得到float类型(即IEEE754单精度浮点数格式)能表示的最大整数是2127×(2-2-23),即2128-2104。
IEEE754标准浮点数的表示范围,见下表
{{B}}表IEEE754标准浮点数的表示范围{{/B}}
格式
最小值
最大值
单精度
ms=1,m=0,值为1.0×21-127=2-126
ms=0,m=.11…1,值为1.11…1×2254-127=2127×(2-2-23)
双精度
ms=1,m=0,值为1.0×21-1023=2-1022
ms=0,m=.11…1,值为1.11…1×22046-1023=21023×(2-2-52)
26.设浮点数阶的基数为8,在下列浮点数中,______是规格化数。
∙A.11.111100
∙B.00.000111
∙C.11.101010
∙D.11.111111
(分数:
2.00)
A.
B.
C. √
D.
解析:
[解析]当基数为8时,尾数的最高3位不全为0(对于正浮点数)或者尾数最高3位不为全1(对于负浮点数)的数为规格化数。
27.算术逻辑单元(ALU)的功能一般包括______。
∙A.算术运算
∙B.逻辑运算
∙C.算术运算和逻辑运算
∙D.加法运算
(分数:
2.00)
A.
B.
C. √
D.
解析:
[解析]此题考查ALU的基本概念,ALU是执行各种算术(加、减、乘、除)和逻辑运算(“与”、“或”、“非”、“异或”等)操作的部件。
28.加法器采用先行进位的根本目的是______。
∙A.优化加法器的结构
∙B.快速传递进位信号
∙C.增强加法器的功能
∙D.以上都不是
(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]采用先行进位的根本目的就是让进位信号传递的时延更小。
29.组成一个运算器需要多个部件,但下面所列______不是组成运算器的部件。
∙A.通用寄存器组
∙B.数据总线
∙C.ALU
∙D.地址寄存器
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]在运算器中重点介绍了运算器的基本结构,地址寄存器并不是运算器的部件。
30.并行加法器中,每位全和的形成除与本位相加二数数值位有关外,还与______有关。
∙A.低位数值大小
∙B.低位数的全和
∙C.高位数值大小
∙D.低位数送来的进位
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]可以从公式[*]得出,每位全和的形成除与本位相加二数数值位有关外,还与低位数送来的进位有关,故选D。
31.ALU属于______。
∙A.时序电路
∙B.控制器
∙C.组合逻辑电路
∙D.寄存器
(分数:
2.00)
A.
B.
C. √
D.
解析:
[解析]ALU属于组合逻辑电路。
32.串行运算器结构简单,其运算规律是______。
∙A.由低位到高位先行进行进位运算
∙B.由低位到高位先行进行借位运算
∙C.由低位到高位逐位运算
∙D.由高位到低位逐位运算
(分数:
2.00)
A.
B.
C. √
D.
解析:
[解析]串行运算器只有一个全加器,不存在先行进位,运算肯定是由低位到高位。
33.某数采用IEEE754标准中的单精度浮点数格式表示为C6400000H,则该数的值是______。
∙A.-1.5×213
∙B.-1.5×212
∙C.-0.5×213