[leetcode] 190. Reverse Bits 解题报告

题目链接:https://leetcode.com/problems/reverse-bits/

Reverse bits of a given 32 bits unsigned integer.

For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binary as 00111001011110000010100101000000).

Follow up:
If this function is called many times, how would you optimize it?


思路:申请一个变量result保存结果,让其每次左移一位,和n右移一位或操作,这样每次就能得到n的最低位.

代码如下:

class Solution {
public:
    uint32_t reverseBits(uint32_t n) {
        uint32_t result = 0;
        for(int i =0; i< 32; i++)
        {
            result = result<<1;
            result |= (n>>i)&1;
        }
        return result;
    }
};
参考:https://leetcode.com/discuss/77219/2ms-java-solution

你可能感兴趣的:(LeetCode,位运算)