日期:2014-05-20 浏览次数:20910 次
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)