美文网首页
二进制1的个数

二进制1的个数

作者: 昵称已被使用换一个吧吧吧 | 来源:发表于2020-01-29 17:42 被阅读0次

实现一个函数,输入一个整数,输出该数的二进制表示中1的个数。

例如:9的二进制表示为1001,有两位是1

  • 把1001减1,低位1变为0,则为1000,两数相与
  • 把1000减1,低位1变为0,低位后的0变为1,则为0111,两数相与
  • 终止条件为0

该例相与了两次,表示有两位1

代码如下

public class Test1 {
    public static void main(String[] args) {
        int N=9;
        int count=0;
        while(N!=0) {
            N=(N&(N-1));
            count++;
        }
        
        System.out.println(count);
    }
}

相关文章

网友评论

      本文标题:二进制1的个数

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