Reverse bits of a given 32 bits unsigned integer.
For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), 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>