己知f(n)=,计算f(n)的C语言函数f1如下: 将f1中的int都改为float,可得到计算f(n)的另一个函数f2。假设unsigned和int型数据都占32位,float采用IEEE754单精度标准。 请回答下列问题。 f1(24)和f2(24

admin2018-08-17  36

问题 己知f(n)=,计算f(n)的C语言函数f1如下:

将f1中的int都改为float,可得到计算f(n)的另一个函数f2。假设unsigned和int型数据都占32位,float采用IEEE754单精度标准。
请回答下列问题。
f1(24)和f2(24)的返回值分别为33 554 431和33 554 432.0,为什么不相等?

选项

答案当n=24时,f(24)=1 1111 1111 1111 1111 1111 1111 B,而float型数只有24位有效位,舍入后数值增大,所以f2(24)比f1(24)大1。

解析
转载请注明原文地址:https://jikaoti.com/ti/gCfjFFFM
0

最新回复(0)