数字文字

时间:2015-03-19 19:08:26

标签: java literals

我正在读一本关于Java的书,我发现以下几点不清楚,请帮助我:

  1. 对于除了基数10(0b,0,0x)以外的任何基数表示的整数文字,我们可以使用代表Long的L后缀吗?

  2. 对于浮点数,我们可以使用除十进制以外的任何其他基数吗?如果是,我们可以使用F或D指定浮点数或双倍除10以外的其他基数吗? 如果是,其他基数超过10,我们可以使用科学记数法还是只允许小数点?

1 个答案:

答案 0 :(得分:2)

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

二进制指数的含义如下:

pP前面的值乘以2^z,其中zp之后的整数(或P })。整数采用十进制格式。例如。 0xFF.1Ap0101d代表255.1015625 * 2^101