问题
单项选择题
设机器码的长度为8位,已知X、Z为带符号的纯整数,Y为带符号的纯小数,[X]原=[Y]补=[Z]移=11111111,求出X、Y、Z的十进制真值为X= (16) ,Y= (17) , Z= (18) 。
A.-1
B.127
C.-127
D.1
答案
参考答案:B
解析:试题16-18
[分析]:
[X]原=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。