已知带符号整数用补码表示,float型数据用IEEE754表示,假定变量$x$的类型只可能是int或者float,当$x$的机器数为C800 0000H时,$x$的真值可能是()。

A.  -7\times2^{27}

B. -2^{26}

C. 2^{17}

D. 25\times2^{27}

【分析】第一步,C800 0000=1100 1000 0000 0000 0000 0000 0000 0000,共32位。

第二步,将“第一步”中的数视为float。根据IEEE754标准的float格式:

1:数的符号为1,表示它是负数。

10010000=128+16, 减去偏置值127,阶码为17。

剩余23个0:实际上是1.000 0000 0000 0000 0000, 也就是-1。

所以,这个float数是-1\times2^{17}。

第三步,将“第一步”中的数视为int, 则是一个数的补码。

1:数的符号1,表示它是负数。

10010......0:将其转为原码,01110....0000=7\times2^{27}

所以,这个int数是-7\times2^{27}。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐