为什么0x1p3
等于8.0
?为什么0x1e3
等于483
,而0x1e3d
等于7741
?由于1e3d
等于1000.0
,因此令人困惑。
答案 0 :(得分:8)
0x1e3
和0x1e3d
是十六进制整数文字。请注意,e
和d
是十六进制数字,在这种情况下不是指数指示符或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的十六进制数字。