Java浮点数表示为hex数
为什么0x1p3
等于8.0
? 为什么0x1e3
等于483
,而0x1e3d
等于7741
? 由于1e3d
等于1000.0
,因此令人困惑。
0x1e3
和0x1e3d
是hex整数文字。 请注意, e
和d
是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数字。