```
public:
uint32_t reverseBits(uint32_t n) {
uint32_t res = 0;
for(int i = 0;i < 32;i++) {
uint32_t this_bit = n & 1;
res ^= this_bit;
if(i == 31) return res;
res = res << 1;
n = n >> 1;
}
return res;
}
};
```