1.统计一个整数转化为二进制之后1的个数:
public int NumberOf1(int n) {
int val = 0;
while(n != 0){
n &= n-1;
val ++;
}
return val;
}
2.判断一个数是不是2的幂:
public boolean isPowerOfTwo(int n) {
return n > 0 && ((n & (n-1)) == 0);
}
3.反转二进制位:
//n&1得到的是最低位
public int reverseBits(int n) {
int val = 0;
for(int i = 0;i < 32;i ++) {
val = val << 1 + n & 1;
n >>= 1;
}
return val;
}