Computer science 计算浮点数代表的最大和最小可表达值

Computer science 计算浮点数代表的最大和最小可表达值,computer-science,Computer Science,我想弄明白为什么IEEE浮点标准中的可表达数字是10^+38--10^38(对于+ve也是如此)。大多数教科书只是对事实作了这样的陈述,我在想为什么。你如何计算这个范围 非常感谢您正在谈论的是NT单精度(32位)浮点表示法。 在此格式中,指数的最大值为127。表示为基数-2,因此最大可能值约为2^127。让我们:127*log(2)/log(10)≈ 38.23. 这就是为什么32位浮点表示的最大值约为10^38。你可以在链接的维基百科文章中找到更多关于IEEE 754浮动的详细信息。我不明白你

我想弄明白为什么IEEE浮点标准中的可表达数字是10^+38--10^38(对于+ve也是如此)。大多数教科书只是对事实作了这样的陈述,我在想为什么。你如何计算这个范围

非常感谢

您正在谈论的是NT单精度(32位)浮点表示法。
在此格式中,指数的最大值为127。表示为基数-2,因此最大可能值约为2^127。让我们:127*log(2)/log(10)≈ 38.23. 这就是为什么32位浮点表示的最大值约为10^38。你可以在链接的维基百科文章中找到更多关于IEEE 754浮动的详细信息。

我不明白你是如何计算的。浮点值为
(-1)^s*(1.0+0.M)*2^e-127
。其中
e
是存储的实际8位序列。最大化该表达式的方法是将e设置为它所存储的最大值,即127。这导致指数为零,而不是127。我哪里出错了?@CharlieParker你损失了一位。一个8位fiteld能代表的最大值是255,而不是127。因此,最大指数应该是255-127=128,除了保留all ones指数字段以指示特殊值(NaN和无穷大)。