Wednesday 3 August 2016

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).


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
class Solution {
public:
    uint32_t reverseBits(uint32_t n) {
        uint32_t bit = 1;
        uint32_t result = 0;
        for(int i = 0; i <= 32; i++ ){
            if(bit & n){
                //if n has 1 at this bit, then set this bit from the reverse
                result = result | (1 << 32 - i - 1);
            }
            //left shift bit by 1 each time
            bit = bit << 1;
        }
        return result;
    }
};
Share:

0 comments:

Post a Comment

Contact Me

Name

Email *

Message *

Popular Posts