0x1p3
为什么等于 8.0
?0x1e3
为什么等于 483
,而 0x1e3d
却等于 7741
?这很令人困惑,因为 1e3d
等于 1000.0
。
0x1p3
为什么等于 8.0
?0x1e3
为什么等于 483
,而 0x1e3d
却等于 7741
?这很令人困惑,因为 1e3d
等于 1000.0
。
0x1e3
和 0x1e3d
是十六进制的整数字面量。请注意,e
和 d
是十六进制数字,这里不是指数符号或者double
类型标志。
1e3d
是一个十进制的浮点数字面量。 e
是指数符号,d
表示这是一个double
而不是float
。
0x1p3
表示以十六进制方式表示浮点字面量的一种方法,您可以在Java语言规范的第3.10.2节中了解其含义。它意味着1乘以2的3次幂;指数是二进制(因此是2的幂而不是10的幂)。
0x1e3是十六进制的483,同样0x1e3d是十六进制的7741。这里的e
被解释为十六进制数字14。