long 型应该加上 l或者L

来源:互联网 发布:mac硬盘清理软件 编辑:程序博客网 时间:2024/06/11 00:11

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


原创粉丝点击