我最近读到了这样一个函数
    public static int nearestPowerOfTwo(int number) {
        --number;
        number |= number >> 16;
        number |= number >> 8;
        number |= number >> 4;
        number |= number >> 2;
        number |= number >> 1;
        ++number;
        return number;
    }
我做了一组测试,这个函数似乎是找到离给出数字最近的2的x方。number |= number >> 16; 我理解是拿这个数的高16位和低16位去与(int总共32位) 以此类推... 不过还是没有弄明白为何这样就可以求出来 请高手指点。