美文网首页Leetcode
Leetcode.190.Reverse Bits

Leetcode.190.Reverse Bits

作者: Jimmy木 | 来源:发表于2019-11-19 08:55 被阅读0次

题目

给定一个无符号整数, 求2进制翻转后的结果.

Input: 00000010100101000001111010011100
Output: 00111001011110000010100101000000
// intput: 43261596  output: 964176192

思路

将整数分解为2的i次方的和, 如果含有2的i次方, 结果就增加2的(32-i-1)次方.

uint32_t reverseBits(uint32_t n) {
    int res = 0;
    int i = 0;
    while(n > 0) {
        int x = 1<<i++;
        if ((n & x) == x) {
            n -= x;
            res += 1<<(32-i);
        }
    }
    return res;
}

总结

位运算的运用.

相关文章

网友评论

    本文标题:Leetcode.190.Reverse Bits

    本文链接:https://www.haomeiwen.com/subject/bsaiictx.html