leetcode 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

 

简单题,思路就是左移1位,如果左移出来的是1,那么假如原来表示的是2的2次方,reversed bits要表示的就是2的19次方(31-2)

那么循环32次,把所有的位读取完毕就好了。

ps:今天第一次8点到实验室。来一道简单的题目宽慰鼓励我吗?gogo fighting~

 1 class Solution {
 2 public:
 3     uint32_t reverseBits(uint32_t n) {
 4         int temp=0,result=0;
 5         for(int i=0;i<32;i++){
 6             if(n&1==1) temp=pow(2,31-i);
 7             else temp=0;
 8             result+=temp;
 9             n>>=1;
10         }
11         return result;
12     }
13 };

 

posted @ 2015-12-10 08:34  0giant  阅读(182)  评论(0编辑  收藏  举报