日期:2014-05-20 浏览次数:21107 次
public class TestAbs {
public static void main(String args[]){
int temp = - 8;
int out = temp;
temp = temp >> 31;
out = out ^ temp;
out = out - temp;
System.out.println(out);
}
}
------解决方案--------------------
public static int abs(int num) {
return num * (1 - ((num >>> 31)<<1));
}
------解决方案--------------------
1,3,13楼的一样的.
类似的还有:num*(1-((num&0X80000000)>>>30))
略有不同的是:
(num^-(num>>>31))+(num>>>31)