其他分享
首页 > 其他分享> > 二进制中1的个数

二进制中1的个数

作者:互联网

      计算n-1时,如果n的最后一位是0,则会向前一位借位,如果前一位仍是0,则继续向前借位,直到遇到第一个不为0的数,

       xxxx1000

      -             1

       xxxx0111

与后 xxxx0000

将最右边的1变为0;

所以重复计算,循环多少次,就找到了多少个1

 

 

public int getNumber(int n){

        int count = 0;

        while(n!=0){

               ++count;

               n=(n-1)&n;

        }

        return count;

}

标签:count,二进制,个数,一位,int,借位,计算
来源: https://www.cnblogs.com/bigsmile/p/10877530.html