【问题标题】:What happens to the frac bits when the floating point number is a sub-normal number?当浮点数是次正规数时,frac 位会发生什么?
【发布时间】:2020-02-27 22:14:33
【问题描述】:

我正在将浮点数转换为位。为简单起见,假设有 4 个指数位和 4 个分数位。假设 frac 位的值为 1/4,即 0100。假设 e 值为 -9,则指数为 -2(e + 偏差)。现在,我不能用 4 位表示 -2,所以我会将指数位全部设为 0。我现在得到了 (0 0000 0100),但显然这是不对的。从这一点上我该怎么办?

【问题讨论】:

  • 为什么不能用 4 位表示 -2?它可以表示 -8 到 7。
  • 基本上,您将指数增加足以进入可表示范围,并将分数向右移动与您增加指数一样多的位。
  • @Barmar 未签名?我不明白如何
  • 通过使用偏移量,使指数015 代表-87

标签: c floating-point rounding-error


【解决方案1】:

当您将指数从-2 增加到0 时,您会将分数向右移动 2 位 - 它的数量是零和无法表示的指数之间的差。所以分数变成0001,全浮点数为

0 0000 0001

【讨论】:

  • 也就是说它是NaN?
  • 不,我认为它只是下溢到 0。
  • 啊,好吧。我对原来的 frac (0100) 是如何变成 0000 还是有点疑惑。你能详细说明一下吗?
  • 我记错了,应该是0001
猜你喜欢
  • 2012-04-07
  • 1970-01-01
  • 2015-09-21
  • 2018-03-16
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 2013-07-09
  • 1970-01-01
相关资源
最近更新 更多