数字 0 在二进制浮点数格式中是什么样子?

bnn*_*ntd 3 floating-point zero ieee-754

浮点格式 (IEEE) 有 32 位。第一个位用于符号,之后的 8 位用于有偏差的指数,最后的 23 位用于尾数。在这个尾数中,第一个 1(始终是 1)始终隐藏,这引出了我的问题:

数字 0 在这种格式中是什么样子的?因为如果指数为 0,则数字将始终为 1。加上尾数始终最小为 1,对吗?如果尾数中只有零,它将被视为“1.0”...

我真的不明白这个。

Mat*_*ias 5

维基百科告诉你:

\n\n
0000 0000   = 0\n8000 0000   = \xe2\x88\x920\n
Run Code Online (Sandbox Code Playgroud)\n\n

除了正常的浮点值之外,指数和尾数还有一堆其他不规则数字,例如零、无穷大和一堆 NaN。还有次正规数;其中 2^-127 以下的数字使用固定指数而不是浮动指数进行近似。

\n\n

实际上,零是一个正规的次正规数。次正规数用 as(\xe2\x88\x921)signbits\xc3\x972^\xe2\x88\x92126 \xc3\x97 0.significandbits和指数全零进行编码。如果有效位为零,则结果为 (+/-) 零。

\n