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;
    }


你可能感兴趣的:(long 型应该加上 l或者L)