设机器码的长度为8位,已知X、Z为带符号的纯整数,Y为带符号的纯小数,[X]原=[Y]补=[Z]移=11111111,求出X、Y、Z的十进制真值为X=(16),Y=(17), Z=(18)。

admin2010-05-10  43

问题 设机器码的长度为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

解析 [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。
转载请注明原文地址:https://kaotiyun.com/show/7okZ777K
0

最新回复(0)