【LeetCode-190】颠倒二进制位

问题

颠倒给定的 32 位无符号整数的二进制位。

示例

输入: 00000010100101000001111010011100
输出: 00111001011110000010100101000000

解答

class Solution {
public:
    uint32_t reverseBits(uint32_t n) {
        uint32_t res = 0; // unsigned int
        for (int i = 0; i < 32; i++) {
            res <<= 1;
            res |= n & 1;
            n >>= 1;
        }
        return res;
    }
};

重点思路

一个非常简单的思路,将n的二进制低位作为res的二进制高位。

posted @ 2021-04-04 23:56  tmpUser  阅读(27)  评论(0编辑  收藏  举报