练习11--二进制中1的个数

2017-10-23  本文已影响0人  莫小西0213

题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
思路:1、java中有个方法可将任意整数转换成二进制表示;
2、使用按位与,将n与n-1相与,n中有多少个1就能进行与多少次。
代码:

public int NumberOf1(int n) {
int count=Integer.toBinaryString(n).replace("0","").length();
return count;
}

public int NumberOf2(int n) {
int count=0;
while(n!=0) {
n=n&(n-1);
count++;
}
return count;
}

上一篇 下一篇

猜你喜欢

热点阅读