对于号码-5 x 10^-1
,即-0.5
,我可以写,
-5E-1f
或-50E-2f
或-0.05E+1F
作为java中的“十进制浮点文字”。
如果在“十六进制浮点字面值”中写入相同的数字,我发现它为
-0X32p-2f
哪个错了。该值为-25.0
。我将50
视为0x32
,并提出了这种表示法。
如何学习在十六进制浮点字面值中编写上述值-5 x 10^-1
?
答案 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()
的文档。