采用移位的操作,这里采用移动mark,因为移动n要移动很多位数,效率太低了
public class Solution {
public int NumberOf1(int n) {
int ans = 0;
int mark = 1;
while(mark != 0) {
if((n & mark) != 0) {
ans++;
}
mark<<=1;
}
return ans;
}
}
另一种只管的解法
public class Solution {
public int NumberOf1(int n) {
String s=Integer.toBinaryString(n);
String[] split=s.split("");
int a=0;
for(int i = 0; i < split.length; i++) {
if (split[i].equals("1"))
{
a++;
}
}
return a;
}
}