求高手
java吧
全部回复
仅看楼主
level 6
lbj2004032 楼主
long SOURCE_ID=3059123861l;
int i = (int) SOURCE_ID;
long l = (long)i;
System.out.println(i);
System.out.println(l);
这段代码运行的结果:
-1235843435
-1235843435
问题是怎么把 int转回long结果为3059123861l
2012年11月28日 01点11分 1
level 6
lbj2004032 楼主
找到答案了
long SOURCE_ID=3059123861l;
int i = (int) SOURCE_ID;
long l = (long)i;
long temp=i>>>1;
temp<<=1; //判断是否为奇数,奇数加1
if(i%2!=0){temp+=1; } System.out.println(temp);
但是>>>是什么符号。。。
2012年11月28日 02点11分 5
好像是忽略符号的移位运算符。最高位补0
2012年11月28日 02点11分
回复 lsgggg123 :负数补1
2012年11月28日 02点11分
好像很厉害的样子
2012年11月28日 02点11分
1