题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
第一种解法:利用java的Integer吧整数转换为字符数组,遍历数组查找
第二种解法: 整数和自身减1相与,会把该数最高位为1的数变为0,计算1的个数就可以了
public class Solution {
public int NumberOf1(int n) {
int ans = 0;
while(n != 0){
ans++;
n = n & (n-1);
}
return ans;
}
}