利用手动计算二进制的方法查找二进制中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; } };