-1

我试图理解什么是次正规数,我猜测指数固定为 -127,为了使数字更小,隐式 1 被隐式 0 替换。这听起来对吗?

4

1 回答 1

1

在 IEEE-754 基本 32 位二进制格式中,次正规数的指数是 -126,而不是 -127。有效数字的前导位确实为零。

对于任何 IEEE-754 二进制格式,让:

  • p是全有效位中的位数(“p”表示精度,24 表示 32 位格式),bias是用于编码指数的偏差(127 表示 32 位格式),以及
  • S是符号字段中的位,E是指数字段中的位, T是尾随有效数字段中的位。

如果E不是全零或全一,则表示的值是正常数。其值为 (-1) S •2 E -<em>bias •(1+2 1-<em>p •T)。术语 1+2 1−<em>p •T 可以被描绘为一个位,后跟一个小数点,后跟T的位:“1。T ”。

如果E全为零,则表示的值为零(如果T为零)或次正规数。其值为(-1) S •2 1-<em>bias •(0+2 1-<em>p •T)。请注意与正常值的两个变化:指数是 1-<em>bias 而不是E- <em>bias,并且前导位是 0 而不是 1。

请注意,最小正态值和次正态值的指数为 1 - bias,对于 32 位格式为 1−127 = −126。当从正常值转换到次正常值时,我们不会同时更改指数和前导位,因为这会导致可表示值的跳跃。所以次正规值与最小正规值具有相同的指数;只是前导位发生了变化。

于 2018-12-10T12:38:36.277 回答