输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
思路:
n &(n-1)把n的最右边的1去掉,用count++计算1的个数
eg:
101 & 100 = 100
1 class Solution { 2 public: 3 int NumberOf1(int n) { 4 int count = 0; 5 while(n!=0){ 6 count++; 7 n = n&(n-1); 8 } 9 10 return count; 11 } 12 };
时间: 2024-10-20 06:47:37