x&(x-1)有兩個用途
- 統計二進制中1的個數
- 判斷一個數是否爲2的n次方
統計二進制中1的個數
private int func(int x){
int count = 0;
while(x!=0){
count++;
x = x&(x-1);
}
return count;
}
判斷一個數是否爲2的n次方
private int func(int x){
return (x&(x-1)) == 0?1:0;
}
菜雞筆記 大佬輕噴