Java 词法结构
规则
Int
0 2 0372 0xDada_Cafe 1996 0x00_FF__00_FF
Long
0l 0777L 0x100000000L 2_147_483_648L 0xC0B0L
Float
1e1f 2.f .3f 0f 3.14f 6.022137e+23f
Double
1e1 2. .3 0.0 3.14 1e-9d 1e137
操作
+= -= *= /= &= |= ^= %= <<= >>= >>>=
正确的示例
int a=0xDada_Cafe;//整数如果太长可以用下划线进行分割,此处是16进制数
float b=0x1.fffffep+127f;//电脑64位打印的结果是3.4028235E38,这里的字母P表示2,即2的127次方
int c=1996;
double g=33e2;
float h=0x1ep-1f;
long p=0b1_1_1_0_1;//加上0b就可以把数字写成二进制的表示,这里表示的是29
错误写法示例
// float d=1996.3;//报错,因默认为double类型,要想编译通过要写成float d=1996.3f
// int f=9999e1;//报错,个人理解是因为int类型的数不支持指数写法
// float i=1.fffep-12f;//要加0x
// long q=0b1_1_1_0_2;//报错,最后一个数字2,不是二进制有效数字
这里面不常见的便是float b=0x1.fffffep+127f;中的p,又因为前面是e,很容易误以为是科学计数法中指数的标志,但其实这里的e是一个十六进制数,而p是2,后面的+127为2的指数,整个数便是0x1.fffffe*2的127次方
输出结果:
a=-623195394
b=3.4028235E38
c=1996
g=3300.0
h=15.0
p=29