多谢!

解决方案 »

  1.   

    public static int reverse(int value) {
            for (int i = 0; i < 16; i++) {
                int highOff = 32 - i - 1;
                int lowBit = (value >> i) & 1;
                int highBit = (value >> highOff) & 1;
                
                /*
                 * 屏蔽地i位和32-i位为0,其他位为1
                 */
                int H = -1 ^ (1 << highOff);
                int L = -1 ^ (1 << i);
                value = value & H & L;
                value = value | ((lowBit << highOff) | (highBit << i));
            }
            return value;
        }