Reverse bits of an unsigned integer.
将无符号整数按位反转
有几种方法可以实现一个无符号整数的按位反转。在此,我们设计一个使用异或交换(XOR swap)技巧的算法,然后使用分治法对其进行优化。
提示:
怎样实现第i位与第j位的对调?想想能否使用异或操作实现。
异或交换技巧:
按位反转可以通过将低n/2位与高位对换实现。技巧就是实现一个名为swapBits(i, j)的函数,将第i位与第j位对换。回忆一下异或运算的原理:0 ^ 0 == 0, 1 ^ 1 == 0, 0 ^ 1 == 1, and 1 ^ 0 == 1。
我们只需要在第i位与第j位不同时执行对换 ...