class Solution {
public:
    uint32_t reverseBits(uint32_t n) {
        for(int i=0; i<=15; i++){
            int p0 = i;
            int p1 = 31-i;

            if(((n>>p0)&1)^((n>>p1)&1)){
                n = (1<<p0)^n;
                n = (1<<p1)^n;
            }
        }
        return n;
    }
};