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; } }; |
0 comments:
Post a Comment