单选题
设机器码的长度为8位,已知X、Z为带符号的纯整数,Y为带符号的纯小数,[X]原=[Y]补=[Z]移=11111111,求出X、Y、Z的十进制真值为X={{U}}
{{U}} 16 {{/U}} {{/U}},Y={{U}} {{U}} 17 {{/U}}
{{/U}},Z={{U}} {{U}} 18 {{/U}} {{/U}}。
单选题
- A.1/128
- B.-1/128
- C.-127/128
- D.127/128
【正确答案】
B
【答案解析】[解析] 原=11111111,已知X为带符号的纯整数,它的最高位符号位是1,即该数为负;其余为数值位(1111111),数值位原码表示的十进制数为127,因此,X的十进制真值为-127。
[Y]补=11111111,[Y]原=10000001(取反加1)。已知Y为带符号的纯小数,它的最高位是1,即该数为负;其余为数值位,数值位原码表示的十进制数为1/128,因此,y的十进制真值为-1/128。
移码(又叫增码)是符号位取反的补码,一般用做浮点数的补码,引入移码的目的是为了保证浮点数的机器零为全0。因为[Z]移=11111111,那么[Z]补=01111111,符号位为0表示正,正数的补码就是它本身;数值位十进制真值为127。因此,Z的十进制真值为127。
单选题
对9位补码操作数(A5)
16进行两位算术右移的结果是______。
- A.(D2)16
- B.(52)16
- C.(E9)16
- D.(69)16
【正确答案】
C
【答案解析】右移运算是将各二进制位右移2位,移到右端的低位被舍弃。对无符号数,高位补0。
例如,a=15时,a的值用二进制形式表示为00001111,舍弃低两位11,则a=00000011。
显然,某数右移一位就相当于这个数除以2,右移n位相当于除以2n。
对无符号数,右移时左边高位移入0;对于有符号的值,如果原来符号位为0(该数为正),则左边也是移入0。如果符号位原来为1(即负数),则左边移入0还是1,取决于所用的计算机系统。移入0的称为“逻辑右移”,即简单右移;移入1的称为“算术右移”。
对9位补码操作数(A5)16,其二进制补码形式为10100101,一次算术右移为11010010,二次算术右移为11101001,十六进制形式为(E9)16。