每日一练(剑指offer)二进制中1的个数

时间:2022-05-09 00:40:30

描述

输入一个整数 n ,输出该数32位二进制表示中1的个数。其中负数用补码表示。

示例

输入:

10

返回值:

2

说明:

十进制中10的32位二进制表示为0000 0000 0000 0000 0000 0000 0000 1010,其中有两个1。

思路????????

????巧用n&(n-1)

每日一练(剑指offer)二进制中1的个数

/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param n int整型
* @return int整型
*/
int NumberOf1(int n ) {
// write code here
int i=0;
int count=0;
while(n)
{
count++;
n=n&(n-1);
}
return count;
}

链接????

​https://www.nowcoder.com/practice/8ee967e43c2c4ec193b040ea7fbb10b8​