首页 > 解决方案 > 当浮点数是次正规数时,frac 位会发生什么?

问题描述

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

标签: cfloating-pointrounding-error

解决方案


当您将指数从-2增加到 时0,您将分数向右移动 2 位 - 它的数量是零和不可表示的指数之间的差。所以分数变成0001了,完整的浮点数是

0 0000 0001

推荐阅读