[leetcode] Reverse Bits

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?

Related problem: Reverse Integer

Credits:
Special thanks to @ts for adding this problem and creating all test cases.
 
 1 class Solution
 2 {
 3 public:
 4   uint32_t reverseBits(uint32_t n)
 5   {
 6     int A[32] = {0};
 7     int i = 0;
 8     while(n > 0)
 9     {
10       A[i++] = n % 2;
11       n /= 2;
12     }
13 
14     int sum = 0;
15     for(i = 0; i < 32; i++)
16       sum = sum * 2 + A[i]; 
17 
18     return sum;
19   }
20 };

 

posted @ 2015-03-10 13:50  imKirin  阅读(109)  评论(0编辑  收藏  举报