美文网首页
面试题15:二进制中1的个数

面试题15:二进制中1的个数

作者: scott_alpha | 来源:发表于2019-10-05 23:39 被阅读0次

    题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如,把9表示成二进制是1001,有两个1。因此,如果输入9,则该函数输出2.
    思路:数n和(n-1)进行与运算,则会消除一个1,如1100和1011与运算后为1000,精彩。
    解决方案:

    public class Question15 {
        public static int NumberOf1(int n){
            int count = 0;
            while (n != 0){
                ++ count;
                n = (n - 1) & n;
            }
            return count;
        }
    
        public static void main(String[] args) {
            System.out.println(NumberOf1(3));
        }
    }
    

    相关文章

      网友评论

          本文标题:面试题15:二进制中1的个数

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