半精度转换

时间:2015-11-01 11:41:01

标签: binary floating-point ieee-754 ieee

0 11110 1111111111如何等于半精度格式1.1111111111 * 2^15?两者都应该是65504。

此处的符号位为0.指数为11101,小数部分为1111111111.但这根本不像1.1111111111 * 2^15

有人可以向我解释一下吗?

1 个答案:

答案 0 :(得分:3)

以下是半精度数字的布局:

Number layout

指数值为11110 2 ,即30 10 。半精度数的指数bias为15 10 ,因此我们需要从30 10 中减去15 10 以获得实际值指数为15 10

有一个隐含的1 2 预先分配给分数,因此实际分数在它前面有一个额外的1。二进制小数点位于隐含1之后,使得数字看起来像这样:

1.1111111111

为了应用15 10 的二进制指数,我们需要将分数点向右移动十五个位置。这产生了数字1111111111100000 2 ,转换后等于65504 10