【剑指Offer 10】二进制中1的个数

题目:请实现一个函数,输入一个整数,输出该数二进制表示中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));
    }
}
运行结果

来源:http://blog.csdn.net/derrantcm/article/details/45476103

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容