归档 2015年3月20日

无符号整数按位反转[LeetCode译文]

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位不同时执行对换 ...

继续阅读

昨天

明天

归档