Long类型定义数字的L或LL后缀
如果数字后面不加L,默认的取值范围是int(整型)
比如:
给a赋值:long a=2147483648; (数字超出int型取值范围)
给a赋值:long a=2147483648L;(正确,说明此时可以是long型的取值范围)
long 型应该加上 l或者L
注意long型后面得加上l或者L
如 long mask = 0xffffffff 结果是mask = -1 因为0xffffffff 先为int 型 然后再由int 转换成long 型。
正确的应为 long mask = 0xffffffffL
范例(用于将两个分开的整型转换成long 再变成double ,PREC_MULTIPLY表示一个除数):
————————————————
public static double recoverAltiOrLongi(int h,int l){
long t1= h;
t1 = t1<<32;
long t2 = l;
long mask = 0xffffffffL; //注意得加上L
long t3 = t2 & mask;
double r = (double)(t3+t1) /PREC_MULTIPLY;
return r;
}