如何在java中写入十六进制浮点文字?
How do I write hexadeximal floating point literal in java?
对于数字 -5 x 10^-1
即 -0.5
,我可以写
-5E-1f
或 -50E-2f
或 -0.05E+1F
作为 "decimal floating point literal" 在 java.
如果"hexadecimal floating literal"中写的是同一个数字,我发现是
-0X32p-2f
这是错误的。此值为 -25.0
。我将 50
视为 0x32
并提出了这个符号。
我如何学习用十六进制浮点文字写上述值 -5 x 10^-1
?
参见 Java 语言规范的 section 3.10.2:
如果是十六进制浮点数,指数是二进制指数;它是 2 的幂,而不是十进制浮点文字中的 10 的幂。
所以0x32p-2f
表示50次2的-2次方,而不是10次-2的次方。
表示 0.5
的十六进制 float
文字将是 0x1p-1f
.
查看 Double.toHexString()
的文档。
对于数字 -5 x 10^-1
即 -0.5
,我可以写
-5E-1f
或 -50E-2f
或 -0.05E+1F
作为 "decimal floating point literal" 在 java.
如果"hexadecimal floating literal"中写的是同一个数字,我发现是
-0X32p-2f
这是错误的。此值为 -25.0
。我将 50
视为 0x32
并提出了这个符号。
我如何学习用十六进制浮点文字写上述值 -5 x 10^-1
?
参见 Java 语言规范的 section 3.10.2:
如果是十六进制浮点数,指数是二进制指数;它是 2 的幂,而不是十进制浮点文字中的 10 的幂。
所以0x32p-2f
表示50次2的-2次方,而不是10次-2的次方。
表示 0.5
的十六进制 float
文字将是 0x1p-1f
.
查看 Double.toHexString()
的文档。