判断2个数a,b的大小。不能用、if、switch、“?”或其他

2017-02-11  本文已影响42人  你期待的花开

通过符号位判断,由于int是32位,第32位是符号位,所以将两个数做差,将差值右移31位,正数的符号位为0,负数的符号位为1。

    public static void main(String[] args) {
        int a = 8;
        int b = 5;
        int[] c = {a, b};
        int d = a - b;
        d = d >> 31;
        d=d*-1;
        System.out.println(c[d]);
    }
上一篇 下一篇

猜你喜欢

热点阅读