【剑指Offer 10】二进制中1的个数
2017-07-04 本文已影响4人
3e1094b2ef7b
题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。
例如把9表示成二进制是1001,有2位是1。因此如果输入9,该函数输出2。
Java代码如下:
package demo;
public class Test9 {
public static int numberOfOne1(int n) {
int result = 0; // 记录1的个数
while(n != 0) {
result++;
n = (n-1) & n;
}
return result;
}
public static void main(String[] args) {
System.out.println(numberOfOne1(-1));
System.out.println(numberOfOne1(0));
System.out.println(numberOfOne1(1));
System.out.println(numberOfOne1(2));
System.out.println(numberOfOne1(9));
}
}
运行结果