数字文字
Numeric literals
我正在看一本关于Java的书,我发现以下几点不清楚,请帮助我:
对于非10进制(0b, 0, 0x)表示的整型字面量是否可以使用代表Long的L后缀?
对于浮点数,我们可以使用十进制以外的任何其他基数吗?如果是,我们可以为 10 以外的其他基数使用 F 或 D 指定 float 或 double 吗?
如果是,除 10 以外的其他基数,我们可以使用科学记数法还是只允许使用小数点?
1) 是的,十六进制、八进制和二进制也是可能的。参见 jls-3.10.1
2) 是的,您可以使用十六进制表示法,但您只能使用 二进制指数 并且指定指数是 必需的 。参见 jls-3.10.2
示例:
0xFF.Ap0d
0xFF.1p0f
0xFF.Ap1d
0xFF.Ap-1f
0xFF.Ap-1
0x.1p16
如果您使用 System.out.println
打印这些文字,您将得到:
255.625
255.0625
511.25
127.8125
63.90625
4096.0
二进制指数的含义如下:
p
或P
前面的值乘以2^z
,其中z
是p
(或P
).整数采用 十进制 格式。例如。 0xFF.1Ap0101d
代表 255.1015625 * 2^101
.
我正在看一本关于Java的书,我发现以下几点不清楚,请帮助我:
对于非10进制(0b, 0, 0x)表示的整型字面量是否可以使用代表Long的L后缀?
对于浮点数,我们可以使用十进制以外的任何其他基数吗?如果是,我们可以为 10 以外的其他基数使用 F 或 D 指定 float 或 double 吗? 如果是,除 10 以外的其他基数,我们可以使用科学记数法还是只允许使用小数点?
1) 是的,十六进制、八进制和二进制也是可能的。参见 jls-3.10.1
2) 是的,您可以使用十六进制表示法,但您只能使用 二进制指数 并且指定指数是 必需的 。参见 jls-3.10.2
示例:
0xFF.Ap0d
0xFF.1p0f
0xFF.Ap1d
0xFF.Ap-1f
0xFF.Ap-1
0x.1p16
如果您使用 System.out.println
打印这些文字,您将得到:
255.625
255.0625
511.25
127.8125
63.90625
4096.0
二进制指数的含义如下:
p
或P
前面的值乘以2^z
,其中z
是p
(或P
).整数采用 十进制 格式。例如。 0xFF.1Ap0101d
代表 255.1015625 * 2^101
.