我正在准备一些考试,过去给出的问题之一是找到最接近 1.7 的数字,给定一个总共有 8 位的假想浮点格式(1 表示符号,3 表示指数,4 表示有效位) .
无论如何,我放下了 1.1011,因为我可以使用四个有效数字,而 1 是 IEEE 标准所暗示的。但是,将指数设置为 000 会使其成为非规范化数字。这是否意味着值 1.7 将是 1.1100 浮点数?
谢谢
我正在准备一些考试,过去给出的问题之一是找到最接近 1.7 的数字,给定一个总共有 8 位的假想浮点格式(1 表示符号,3 表示指数,4 表示有效位) .
无论如何,我放下了 1.1011,因为我可以使用四个有效数字,而 1 是 IEEE 标准所暗示的。但是,将指数设置为 000 会使其成为非规范化数字。这是否意味着值 1.7 将是 1.1100 浮点数?
谢谢
提问者发布了一个被版主删除的答案。我已经标记了它以引起注意,但我也会在这里添加一些注释。
关键是 IEEE-754 风格的浮点格式以“有偏”(也称为“excess-n”)整数格式存储指数。对于 3 个指数位,偏差为 3,因此可编码指数的集合为:
encoding meaning
000 exponent for zeros and denormals
001 2^-2
010 2^-1
011 2^0
100 2^1
101 2^2
110 2^3
111 exponent for infinities and NaNs
因此,提问者的值 1.7 将具有 3 ( b011
) 的指数字段和b1011
他所说的有效数字字段,这使得完整的值b00111011
。
哦,我完全忘记了指数偏差,如果有人想知道浮点数指数的偏差为 3,那么将 at 设为 3 会给我 2^0