# Leetcode Reverse Bits problem solution

In this Leetcode Reverse Bits problem solution, we need to Reverse bits of a given 32 bits unsigned integer.

## Problem solution in Python.

```class Solution:
# @param n, an integer
# @return an integer
def reverseBits(self, n):
reversed_n = 0
for i in range(32):
reversed_n = reversed_n << 1 | ((n >> i) & 1)
return reversed_n
```

## Problem solution in Java.

```public class Solution {
public int reverseBits(int n) {
Integer j=31;
Integer i=0;
Integer val = n;
while(i<j){
if(((val>>i)&1)!=((val>>j)&1)){
val^=((1<<i)|(1<<j));
}
++i;
--j;
}
return val;
}
}
```

## Problem solution in C++.

```class Solution {
public:
uint32_t reverseBits(uint32_t n) {
string s;
while(n!=0)
{
s+=to_string(n%2);
n/=2;
}

string temp(32-s.size(),0);
s+=temp;
//cout<<s<<endl;
uint32_t r=0;
for(int i=s.size()-1;i>=0;i--)
{
if(s[i]=='1')
r+=pow(2,s.size()-i-1);;

}

return r;
}
};
```

## Problem solution in C.

```uint32_t reverseBits(uint32_t n) {

uint32_t revern;

if (n == 0)
{
return revern=0;
}
else
{
for(int i =0; i<32; i++)
{
if (n&(1<<i))
{
revern=revern+(0x80000000>>i);
}
}

return revern;
}
}
```