2

可能重复:
无符号整数中的 C 反转位
此代码如何工作以反转位?

给定一个nk位的数字(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;
}
4

0 回答 0