2

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

这里的符号位是 0。指数是 11101,小数部分是 1111111111。但这根本不像1.1111111111 * 2^15

有人可以向我解释吗?

4

1 回答 1

4

这是您的半精度数的布局:

编号布局

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

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

1.1111111111

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

于 2015-11-01T12:19:15.993 回答