【答案解析】[解析] 首先我们知道float类型采用IEEE 754单精度浮点数格式表示,下表给出了IEEE 754标准单精度浮点数格式。
{{B}}IEEE 754标准单精度浮点数格式{{/B}}
|
| 符号位S |
偏移的阶码 |
尾数 |
| 1位 |
8位 |
23位 |
其中尾数隐含了一位,即尾数有24位二进制有效位数。因为1e10=10
10≈10*2
30≈2
33,在数量级大约为2
33,而2.5的数量级为2
1,因此在计算2.5+1e10进行对阶时,两数阶码的差为32,也就是说,2.5的位数要右移32位,从而使得24位有效数字全部丢失,尾数变为全0。然后再与1e10的位数相加,结果就是1e10的尾数,因此f=2.5+1e10的运算结果仍为1e10,这样,再执行f=f-1e10时结果就为0。
故本题正确答案为C。