如何在java中编写十六进制浮点文字?
对于数字如何在java中编写十六进制浮点文字?,java,literals,Java,Literals,对于数字-5x10^-1,即-0.5,我可以写 -5E-1f或-50E-2f或-0.05E+1f 作为java中的“十进制浮点文字” 如果相同的数字是用“十六进制浮点文字”写的,我发现它是 -0X32p-2f这是错误的。该值为-25.0。我将50视为0x32,并给出了这个符号 我如何学习用十六进制浮点文字编写上述值-5 x 10^-1?请参见Java语言规范的部分: 如果是十六进制浮点文字,则指数为二进制指数;它是2的幂,而不是十进制浮点文本中的10的幂 因此0x32p-2f表示幂-2的50倍2
-5x10^-1
,即-0.5
,我可以写
-5E-1f
或-50E-2f
或-0.05E+1f
作为java中的“十进制浮点文字”
如果相同的数字是用“十六进制浮点文字”写的,我发现它是
-0X32p-2f
这是错误的。该值为-25.0
。我将50
视为0x32
,并给出了这个符号
我如何学习用十六进制浮点文字编写上述值-5 x 10^-1
?请参见Java语言规范的部分:
如果是十六进制浮点文字,则指数为二进制指数;它是2的幂,而不是十进制浮点文本中的10的幂
因此0x32p-2f
表示幂-2的50倍2,而不是幂-2的10倍
表示
0.5
的十六进制float
文本将是0x1p-1f
请查看文档。50E-2f
表示50*10^-2
0x32p-2f
的意思是0x32*16^-2
(其中“^”的意思是“这里的力量”)@OliverCharlesworth它不是16^-2
,它是2^-2
@OliverCharlesworth0x32*16^-2
转到0.19
,但是java.exe
显示为0.25
:啊,是的,你说得对。我依赖那些阅读JLS并在视频中发言的人。我现在看不懂JLS。谢谢你的回答。