【发布时间】: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 未签名?我不明白如何
-
通过使用偏移量,使指数
0到15代表-8到7。
标签: c floating-point rounding-error