可能重复:
C reverse bits in unsigned integer
How does this code work to reverse bits in number?
给定n
个k
位(n < 2^k)
的数字,是否有一种快速的方法可以使用按位进行操作?这是我的slow
解决方案:
int reverse_bit(int n, int bit_size) {
bit_size--;
int result = 0;
while (n) {
if ((n & 1) == 1)
result += 1 * (1 << bit_size);
n >>= 1;
bit_size--;
}
return result;
}