牛客网 剑指offer 二进制中1的个数

时间限制: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;
    }

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦