Reverse Bits

Easy
Watch on YouTube ↗

Solution

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
*/