Javascript 要获得1字节浮点的无穷大,我需要添加的最小值是多少

Javascript 要获得1字节浮点的无穷大,我需要添加的最小值是多少,javascript,floating-point,ieee-754,Javascript,Floating Point,Ieee 754,我正试图了解由于溢出,我需要添加多少最小值才能获得无穷大。我已经读过了。让我在这里澄清我的理解。为了简化,我将使用1字节浮点,4位表示指数,3位表示尾数: 0 0000 000 我可以在其中存储的最大正数是: 0 1110 111 当转换为科学符号时: 1.111 x 2^{7} = 11110000 我的理解是正确的,我应该添加的最小数字是00010000,以获得Infinity: 11110000 + 00010000 --------

我正试图了解由于溢出,我需要添加多少最小值才能获得无穷大。我已经读过了。让我在这里澄清我的理解。为了简化,我将使用1字节浮点,4位表示指数,3位表示尾数:

0 0000 000
我可以在其中存储的最大正数是:

0 1110 111
当转换为科学符号时:

   1.111 x 2^{7} = 11110000
我的理解是正确的,我应该添加的最小数字是
00010000
,以获得
Infinity

       11110000
+      00010000
        --------
     1 00000000
据我所知,任何小于
00010000
的值都不会导致溢出,结果将四舍五入到
11110000
。但是
00010000
是浮点格式的
00000001
,它是数字
1
。那么,仅仅添加
1
就足以导致溢出吗?

中给出了答案。四舍五入到无穷大的最小值为:

c=27×(2)− ½×21-4)=1.9375×27=1.11112×27

所以你可以加上的最小值就是

c− fmax=1.11112×27− 1.1112×27=0.00012×27=23

如果我理解正确的话,在您建议的格式中会有位模式
0 1010 000

更新:那么为什么会有这种特殊的切断

假设在这个二进制码之上还有另一个二进制码,那么下一个浮点数就是

x=1.0002×28


请注意,c是正好介于x和fmax之间的值。换句话说,取整到x的值取而代之的是四舍五入到无穷大,但取整到fmax的值仍然取整到相同的值。

谢谢,但是如果将您计算的数值
2^3=1000
添加到
11110000
中,将产生
1111000
,这似乎不会导致溢出,只需将第五位设置为1,数字将四舍五入为最大值。我希望溢出会将整个尾数变成零,
1
覆盖可用位。例如,如果您添加两个1字节的二进制数
1111111
0000 0001
,您会得到一个溢出
1 0000
(9位不能放入,因此第一个1被丢弃)。浮点中的溢出不是这样吗?最大值是多少?在我的1字节浮点中是
0 1110 111
。我假设当浮点加上两个数字时,它会将其从科学形式转换为普通形式,比如
0.001 x 2^2+0.011 x 2^1=0.1+0.11
并将它们这样相加,然后它会转换回科学形式并转换为浮点形式。也许这就是我在前面的评论中提到的困惑的来源,我想你试着从整数运算的角度来考虑它:浮点溢出不同于整数溢出。如果你想了解浮点加法是如何执行的,看看下面这样的例子是的,我主要是想理解你链接的答案中指定的公式背后的原理,以及我链接的答案中的短语“你需要增加足够的MAX_值以实际影响尾数”。我在想,影响尾数实际上是导致一个类似溢出的整数。你对影响尾数的
有什么看法?