Java浮点数表示为hex数

为什么0x1p3等于8.0 ? 为什么0x1e3等于483 ,而0x1e3d等于7741 ? 由于1e3d等于1000.0 ,因此令人困惑。

0x1e30x1e3d是hex整数文字。 请注意, ed是hex数字,在这种情况下不是指数指示符或double精度指示符。

1e3d是十进制浮点字面值。 e是指数指标, d表示这是一个double而不是float

符号0x1p3是一种以hex表示浮点文字的方法,您可以在Java语言规范的3.10.2节中阅读。 它意味着1倍2的功率3; 指数是二进制的(因此,它是2-to-the-power而不是10-power-power)。

0x1e3对于483是hex,对于7741是0x1e3dhex.e被读取为值为14的hex数字。