class Solution {
public int reverseBits(int n) {
int bits = 32;
int ans = 0;
// O(32)
while(bits > 0) {
//ans = ans<<1;
if((n & 1) > 0) {
ans = (ans | 1);
}
n = n>>1;
ans = (bits>1) ? ans<<1 : ans;
bits--;
}
return ans;
}
}
/*
n = 01111111111111111111111111111100
ans = ans | currbit
ans << 1
0 - 000000000000000000000000000000 0
1 - 000000000000000000000000000000 00
2 - 00000000000000000000000000000 001
3 - 0000000000000000000000000000 0011
30 - 0 0011111111111111111111111111111
ans
31 - 00111111111111111111111111111110
*/