Java浮点数表示为十六进制数

时间:2010-12-28 13:49:31

标签: java floating-point hex

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

2 个答案:

答案 0 :(得分:8)

0x1e30x1e3d是十六进制整数文字。请注意,ed是十六进制数字,在这种情况下不是指数指示符或double类型指示符。

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

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

答案 1 :(得分:2)

0x1e3对于483是十六进制,对于7741是0x1e3d十六进制。e被读取为值为14的十六进制数字。