Reverse bits of a given 32 bits unsigned integer.
For example,given input 43261596 (represented in binary as00000010100101000001111010011100),return 964176192 (represented in binary as00111001011110000010100101000000).
Follow up:
If this function is called many times,how would you optimize it?
Related problem:Reverse Integer
Method:
<span style="font-size:18px;">uint32_t reverseBits(uint32_t n) { int num[32]; int i = 0; uint32_t temp = 0; for(; i < 32; i++)//记录到数组 { if((1<<i)&n) { num[i] = 1; } else { num[i] = 0; } } for(i = 0; i<32; i++)//使用位偏移写入到临时数temp中 { if(num[i]) { temp = (1<<(31-i))|temp; } } return n = temp; }</span>