public int reverseBits(int n) {
int r = 0;
for(int i = 0;i < 32 && n != 0;i++){
r= r<<1;
r = r|(n&1);
n = n>>1;
}
return r;
}
public int hammingWeight(int n) {
int r = 0;
while(n != 0) {
n = n&(n-1);
r++;
}
return r;
}