十六进制浮点文字

时间:2014-09-07 16:21:53

标签: java floating-point hex

0x12.2P2如何等于72.5?

我知道P后面的值,称为二进制指数,表示乘以该数字的2的幂?

1 个答案:

答案 0 :(得分:17)

0x12.2P2是0x122 / 16 10 * 2 2

  • 0x122 = 290 10
  • 除以16 10 = 18.125 10
  • 乘以2 2 导致72.5 10

更正式地(?),对于之前的部分 P,你可以使用这个非常经典的转换表:

     decimal point here  ▼
+-----+-----+-----+-----+-+-----+-----+-----+
| 16³ | 16² | 16¹ | 16⁰ | | 16⁻¹| 16⁻²| 16⁻³|
+-----------------------------------------+
|     |     |  1  |  2  |.|  2  |     |     |
+-----+-----+-----+-----+-+-----+-----+-----+

所以0x12.2是1⨯16¹+2x16⁰+2⨯16-1 = 18.125