嗨,我正在为我的计算机科学课做作业,我被这个问题困住了。
给定 n 位和 e 指数位的 IEEE 浮点格式,给出以下表达式
- a) 最大的有限正数。
- b) 最大(最接近于 0)的负数。
- c) 最低 ULP。
在 n 和 e 方面。
有人可以帮助解决这些问题并解释原因吗?太感谢了
嗨,我正在为我的计算机科学课做作业,我被这个问题困住了。
给定 n 位和 e 指数位的 IEEE 浮点格式,给出以下表达式
在 n 和 e 方面。
有人可以帮助解决这些问题并解释原因吗?太感谢了
在C
这种情况下,您可以只向适当的标题询问此类信息float.h
#include <stdio.h>
#include <float.h>
int main()
{
printf("%lf \n", FLT_MAX);
return (0);
}
更多信息,您只需从我刚刚链接的文档中选择正确的宏。
a) 最大的有限正数。
符号 +
N 位 1.111...1111
e 指数位:111....110 - 偏差(模式 111....111 为 INF 和 NaN 保留)
偏差:通常为 e 的 1/2 或 011...111
+1.1111111.... * 功率(2, 111...110 - 偏置)
~ +1.0 * 功率(2, 111...111 - 偏置)
~ +1.0 * 功率(2, 100...000)
~功率(2,功率(2,e-1))
b) 最大(最接近于 0)的负数。
符号 -
N 位 0.000...001
e 指数位:000....000 - (bias-1)(最小指数有 -1 偏差)
偏差:通常为 1/2 路 011...111
-0.000...001 * 功率(2, 000...000 - (bias-1))
-0.000...001 * 功率(2, 000...000 - (bias-1))
-1.0 * 功率(2, -N - (bias-1))
-1.0 * power(2, -N - (bias-1))
-power(2, power(2,-N - (power(2,e-1))- 1-1)))
c) 最低 ULP。
单位在最后一位
+
b中的答案版本。
浮点数可以表示为
(-1)^Sign * Number * 2 ^ Exponent
通常数字有 23 位,指数有 8 位,符号有 1 位。这样你就可以回答 1) 和 2)。我不知道 ULP 是什么。