二进制1的个数

题目描述

输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。

解法一

 public int NumberOf1(int n) {

        int count = 0;
        int flag = 1;
        while (flag != 0){
            if((n & flag) !=0){
                count++;
            }
            flag = flag << 1;
        }
        return count;
    }

解法二

  public int NumberOf2(int n) {

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

posted @ 2022-05-10 23:18  iforeverhz  阅读(124)  评论(0)    收藏  举报