半精度转换

Half precision conversion

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

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

谁能给我解释一下?

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

指数的值为111102,即3010。半精度数的指数 bias 为 1510,因此我们需要从 3010 中减去 1510 得到 1510.

的实际指数

分数前面隐含了12,所以实际分数前面多了一个1。二进制小数点位于隐含的 1 之后,使数字看起来像这样:

1.1111111111

为了应用1510的二进制指数,我们需要将小数点向右移动十五个位置。这将产生数字 11111111111000002,转换后等于 6550410