输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示
考虑与(&)运算 , 每次n和(n-1)与操作 ,就会把对应源原数据n的2进制中的最后一个1变为0
运行时间:16ms
占用内存:9244k
public class Solution {
public int NumberOf1(int n) {
int m=0;
while(n!=0){
n=n&(n-1);
m=m+1;
}
return m ;
}
}
使用 Java 自带toBinaryString()方法
String str = “abc”;
charAt()从字符串中取字符
char ch = str.charAt(0); 第一个字符
char ch2 = str.charAt(1); 第二个字符
运行时间:13ms
占用内存:9388k
public class Solution {
public int NumberOf1(int n) {
String s = Integer.toBinaryString(n);
int sum=0;
for(int i=0;i<s.length();i++){
if(s.charAt(i)=='1')
sum+=1;
}
return sum;
}
}