【问题标题】:Does a subnormal number have an implicit 0?次正规数是否有隐含的 0?
【发布时间】:2018-12-10 10:26:30
【问题描述】:

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

【问题讨论】:

    标签: floating-point ieee-754 mantissa


    【解决方案1】:

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

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

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

    如果E 不是全零或全一,则表示的值是一个普通数。其值为 (-1)S•2E-偏差•( 1+21−p•T)。术语 1+21−p•T 可以被描绘为一个位,后跟一个小数点,后跟 T 的位: “1.T”。

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

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

    【讨论】:

      猜你喜欢
      • 2021-05-24
      • 2017-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-25
      相关资源
      最近更新 更多