可能重复:
无符号整数中的 C 反转位
此代码如何工作以反转位?
给定一个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;
}