Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中编写十六进制浮点文字?_Java_Literals - Fatal编程技术网

如何在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
@OliverCharlesworth
0x32*16^-2
转到
0.19
,但是
java.exe
显示为
0.25
:啊,是的,你说得对。我依赖那些阅读JLS并在视频中发言的人。我现在看不懂JLS。谢谢你的回答。