1.2.2 真题讲解
1)B。
根据补码定义,数值X的补码记作[X]补,如果机器字长为n,则最高位为符号位,0表示正号,1表示负号,正数的补码与其原码和反码相同,负数的补码等于其反码的末尾加1。
16位补码能表示的数据范围为[-215-215-1]。对于整数216-1和-216+1,数据表示需要16位,再加一个符号位,共17位,因此不在16位补码能表示的数据范围Z内。
在补码表示中,0有唯一的编码,[+0]补=0000000000000000,[-0]补=0000000000000000,即0000H。
[-1]原=1000000000000001,[-1]反=1111111111111110,因此-1的补码为[-1]补=1111111111111111=FFFF。
2)C。
釆用8位补码表示整型数据时,可表示的数据范围为-128~127,因此进行127+1运算会产生溢出。
3)B。
各种数据在计算机中表示的形式称为机器数,其特点是采用二进制计数制,数的符号用0、1表示,小数点则隐含表示而不占位置。机器数对应的实际数值称为数的真值。
为了便于运算,带符号的机器数可采用原码、反码、补码和移码等不同的编码方法。
所谓定点数,就是表示数据时小数点的位置固定不变。小数点的位置通常有两种约定方式:定点整数(纯整数,小数点在最低有效数值位之后)和定点小数(纯小数,小数点在最高有效数值位之前)。
当机器字长为n时,定点数的补码和移码可表示2n个数,而其原码和反码只能表示2n-1个数(0表示占用了两个编码),因此定点数所能表示的数值范围比较小,运算中很容易因结果超出范围而溢出。
数的浮点表示的一般形式为N=2E×F,其中E为阶码,F为尾数。阶码通常为带符号的纯整数,尾数为带符号的纯小数。
很明显,一个数的浮点表示不是唯一的。当小数点的位置改变时,阶码也相应改变,因此可以用多种浮点形式表示同一个数。
浮点数所能表示的数值范围主要由阶码决定,所表示数值的精度则由尾数决定。
4)B。
机器字长为n,最高位为符号位,则剩余的n-1位用来表示数值,其最大值是这n-1位都为1,也就是2n-1-1。
5)B。
在计算机中使用了类似于十进制科学记数法的方法来表示二进制实数,因其表示不同的数时小数点位置的浮动不固定而取名为浮点数表示法。浮点数编码由两部分组成:阶码(即指数,为带符号定点整数,常用移码表示,也有用补码表示的)和尾数(是定点纯小数,常用补码表示,也可用原码表示)。因此可以知道,浮点数的精度由尾数的位数决定,表示范围的大小则主要由阶码的位数决定。
6)B。
90H即为二进制的10010000。说明此数为负数,其反码为10001111,其原码为11110000,即-112,2X=-112,所以X=-56。
7)B。
如果浮点数的阶码(包括1位阶符)用R位表示,尾数(包括1位数符)用M位的补码表示,则浮点数表示的数值范围如下:
最大正数:+(1-2-M+1)×2(2R-1-1)。
最小负数:-1×2(2R-1-1)。
8)A。
移位运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。在数字没有溢出的前提下,对于正数和负数,左移一位就相当于乘以21,左移n位就相当于乘以2n。
9)A。
判断是否为1,让1和它做“与”运算,为1时结果为1,不为1时结果为0。
10)B。
浮点数是小数点位置不固定的数。一个浮点数可以表示为N=2E×F。浮点数的计算步骤是对阶、尾数运算、结果格式化。对阶时是小数向大数看齐,对阶小数是通过算术右移来实现的。
11)A。
循环冗余校验码广泛应用于数据通信领域和磁介质存储系统中。它利用生成多项式为k个数据位产生r个校验位来进行编码,其编码长度为k+r。
12)C。
设数据位是n位,校验位是k位,则n和k必须满足以下关系:2k-1≥n+k。若n=48,则k为6时可满足26-1≥48+6。
13)D。
海明码的构造方法是:在数据位之间插入k个校验位,通过扩大码距来实现检错和纠错。设数据位是n位,校验位是k位,则n和k必须满足以下关系:
2k-1≥n+k
数据为32位时,代入公式:
26-1≥32+6
计算结果是需要6位。
14)B。
D5在第10位,10=8+2=23+21,由于校验码处理20,21,22,23位,分别对应P1,P2,P3,P4。因此,D5由P4P2进行校验。
15)C。
奇校验:就是让原有数据序列中(包括要加上的一位)1的个数为奇数。
偶校验:就是让原有数据序列中(包括要加上的一位)1的个数为偶数。
使用1位码距时是无法识别出哪里错误的。