如何在java中编写十六进制浮点文字?

时间:2015-06-10 07:21:53

标签: java literals

对于号码-5 x 10^-1,即-0.5,我可以写,

-5E-1f-50E-2f-0.05E+1F

作为java中的“十进制浮点文字”。

如果在“十六进制浮点字面值”中写入相同的数字,我发现它为

-0X32p-2f哪个错了。该值为-25.0。我将50视为0x32,并提出了这种表示法。

如何学习在十六进制浮点字面值中编写上述值-5 x 10^-1

2 个答案:

答案 0 :(得分:5)

请参阅Java语言规范的section 3.10.2

如果是十六进制浮点字面值,则指数是二进制指数;它是2的幂,而不是十进制浮点文字中的10的幂。

所以0x32p-2f表示功率-2的强度为50次 2 ,而不是功率-2的10倍。

代表float的十六进制0.5字面值为0x1p-1f

答案 1 :(得分:-1)

查看Double.toHexString()的文档。