2

重複の可能性:
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;
}
4

0 に答える 0