颠倒二进制位#190

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

示例:

输入: 43261596
输出: 964176192
解释: 43261596 的二进制表示形式为 00000010100101000001111010011100 ,
 返回 964176192,其二进制表示形式为 00111001011110000010100101000000 。 进阶: 如果多次调用这个函数,你将如何优化你的算法?

//使用左移操作符和右移操作符 , 每次使用m的末位和n右移后按位与 , m向左跑 , n向右跑
//C style
uint32_t reverseBits(uint32_t n) {
    uint32_t m=0;
    for(int i=0;i<32;i++){
        m<<=1;
        m|=(n&1);
        n>>=1;
    }
    return m;
}