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

admin2018-08-17  57

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

将f1中的int都改为float,可得到计算f(n)的另一个函数f2。假设unsigned和int型数据都占32位,float采用IEEE754单精度标准。
请回答下列问题。
f2(127)的机器数为7F80 0000H,对应的值是什么?若使f2(n)的结果不滋出,则最大的n是多少?若使f2(n)的结果精确(无舍入)。则最大的n是多少?

选项

答案IEEE 754标准用“阶码全1、尾数全0”表示无穷大。f2返回值为float型,机器数7F800000H对应的值是+∞。 当n=126时,f(126)=2127-1=1.1…1×2126,对应阶码为127+126=253,尾数部分舍入后阶码加1,最终阶码为254,是IEEE 754单精度格式表示的最大阶码。故使f2结果不溢出的最大n值为126。 当n=23时,f(23)为24位1,float型数有24位有效位,所以不需舍入,结果精确。故使f2获得精确结果的最大n值为23。

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

相关试题推荐
随机试题
最新回复(0)