2015-10-13 92 views
0

如何将106十进制数转换为9位浮点数,其中msb是带有4位指数和4位尾数的符号?可能吗?十进制浮点数9位

+0

为了制定一个答案,了解这个浮点格式是否遵循用于IEEE-754二进制浮点格式的惯例将是有用的。特别是,它是否使用了一个有偏指数,其指数值0保留给零和非正规数,并且指数值0xF(即十进制15)为无穷大和NaN保留? – njuffa

+0

是IEEE-754格式 – Austin

+0

由于IEEE 754没有指定9位格式,所以“IEEE 754”本身还不够好。例如,我们仍然需要知道指数偏差是什么。 (基于确实存在的IEEE 754格式,我猜* 7的指数偏差,但这是一个猜测。)如果您有示例值和相应的位模式,这将有助于理解格式。 –

回答

2

每通过OP注释,所讨论的浮点格式遵循IEEE-754规范,所以它使用与隐式整数位尾数表示,并且具有最小的指数编码一个偏置指数为零和非正规数和所保留的最大的指数编码保留给infinities和NaNs。

106(十进制)= 1.10101 * 2 (二进制)。在所提出的IEEE型九比特浮点格式中,指数偏差为7.归一化操作数的大小为2 -6≤| x | 。因此,106是描述范围自2 = 256

然而,106是不能表示准确,因为它需要五个分数尾数位,而只有四个由所提出的格式提供内。使用舍入到最接近或者偶数的最接近的可表示的数字是1.1010 * 2 = 104.其二进制编码是0_1101_1010。

+0

我想你想要2^8 = 256(所以'106' *是*在可表示的范围内,虽然在舍入之前实际上不能表示)。而106是'1.10101 * 2^6',而不是'1.10101 * 2^8'。 –

+0

@MarkDickinson:你说得对,不知道我是怎么弄错的,除了我在第一杯咖啡前发布的。我马上解决这个问题。 – njuffa

+0

是的,对于其他优秀答案的挑剔表示歉意。 (我已经upvoted。) –