美文网首页
【剑指Offer 10】二进制中1的个数

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

作者: 3e1094b2ef7b | 来源:发表于2017-07-04 23:16 被阅读4次

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

    相关文章

      网友评论

          本文标题:【剑指Offer 10】二进制中1的个数

          本文链接:https://www.haomeiwen.com/subject/hbhfhxtx.html