美文网首页奇妙的位运算
位运算之统计二进制数中1的个数

位运算之统计二进制数中1的个数

作者: 掌灬纹 | 来源:发表于2019-01-22 18:49 被阅读0次

    题目:输入任意十进制数转为二进制并且统计二进制中1出现的次数

    样例:

    输入:

    10

    输出:

    1010

    2

    tip: 二进制数减一 可视为从最低位为1往后取反 eg:1010 - 1 = 1001 ,在将

    (1010)&(1001)做与运算,即可消去第一位1,即1000,即统计减一的次数

    ,直到消去所有的1,即为1的个数。

    (Java)代码如下:

    public static void main(String[] args) {

    int count = 0;//统计减1次数

    Scanner sc = new Scanner(System.in);

    int n = sc.nextInt();

    System.out.println(Integer.toString(n, 2));//二进制输出

    while(n != 0) {

    n = n&(n-1);

    count++;

    }

    System.out.println(count);

    }

    相关文章

      网友评论

        本文标题:位运算之统计二进制数中1的个数

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