时间限制:1秒空间限制:32768K热度指数:17492
题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示
利用逻辑与运算求1个数
从最右边的1开始消去,每一次与运算消去一个1
代码如下:
int NumberOf1(int n) {
int cnt=0;
while(n!=0){
++cnt;
n=n&(n-1);
//cout<<n<<endl;
}
return cnt;
}
时间限制:1秒空间限制:32768K热度指数:17492
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示
利用逻辑与运算求1个数
从最右边的1开始消去,每一次与运算消去一个1
代码如下:
int NumberOf1(int n) {
int cnt=0;
while(n!=0){
++cnt;
n=n&(n-1);
//cout<<n<<endl;
}
return cnt;
}