思路:
判断最低位是否为1,然后右移一位,这样次低位就位于最低位的位置,然后继续判断最低位
1 int numberOf1(unsigned int n){ 2 int cnt = 0; 3 while(n){ 4 if(n & 1) 5 cnt++; 6 n >>= 1; 7 } 8 return cnt; 9 }
1 int numberOf1(unsigned int n){ 2 int cnt = 0; 3 while(n > 0){ 4 n &= n - 1; 5 cnt++; 6 } 7 return cnt; 8 }
时间: 2024-10-12 13:41:07