利用手动计算二进制的方法查找二进制中1的个数,注意输入为 -2147483648(即INT_MIN)的情况时,如果转为int型则会导致整数溢出,所以可以使用unsigned int来表示
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param n int整型
* @return int整型
*/
int NumberOf1(int n) {
// write code here
int num = 0;
unsigned int nu = n;
if(nu < 0)
nu = -1 * nu;
while(nu != 0)
{
int temp = nu % 2;
if(temp == 1)
num++;
nu /= 2;
}
return num;
}
};



京公网安备 11010502036488号