题目
给定一个数,获取该数二进制有多少位1
- 先提前最右侧1,提取到后计数,然后将原数最右侧的1抹掉,然后继续提取最右侧的1
function bitOne(num){
let count=0;
while(num!==0){
const rightOne=num&(~num+1)
count++;
// 00011010
// 00000010
// 00011000
num^=rightOne
}
return count;
}