首页 文章

最小浮点数怎么能是2 ^( - 126),而不是2 ^( - 128)

提问于
浏览
3

考虑一个32位浮点数(IEEE 754),尾数为0-22(23位),指数为23-30(8位),符号为31(1位)
我想找出可以存储的最小正数 .
我被告知答案是1.18 * 10-38,大约是2-126
我的分析如下
如果我们将所有零都放在尾数中并将所有的都放在指数中,那么十进制等值就是
1.0 x 2-128 = 2.93 x 10-39

我哪里错了?
谢谢

2 回答

  • 0

    如果你把所有的都放在指数中你将得到 NaN 如果尾数是非零或无穷大,如果尾数是0. Wikipedia IEEE 754 . 当指数二进制等于0时,您的最小值也在Denormal numbers空间内 .

  • 2

    虽然8位指数意味着-127到128但是两种情况保留用于特殊值(参见here),所以最负的指数是-126 .

    顺便说一下,在 Two's Complement 系统中不可能将-128存储在8位中,这是 IEEE 754 指数中使用的基本系统 .

相关问题