java - 计算数字的二进制表示形式的个数

标签 java

<分区>

Possible Duplicate:
Best algorithm to count the number of set bits in a 32-bit integer?

我想找出一个数字的二进制表示中有多少个 1。我有 2 个逻辑。

  1.   int count =0;
    int no = 4;
    
    while(no!=0){
        int d = no%2;
        if(d==1)
            count++;
        no = no/2;
        str = str+ d;
    }
    
  2. 现在第二个逻辑是继续用 1,2,4,8,32 迭代屏蔽数字并检查结果是否为 1,2,4,8.....我没有得到应该结束的结果此循环的条件。

最佳答案

使用 Java API(java 5 或更高版本)。

Integer.bitCount(int);
Long.bitCount(long);

注意:以上java方法是基于hacker's delight

关于java - 计算数字的二进制表示形式的个数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5267803/

相关文章:

java - 带图像图标的 JButton "lag"

java - 如何让枚举在实现接口(interface)时使用它们的 compareTo 方法?

java - 在内部存储的文件夹内创建文件

java - 将参数从 Android 获取到 PHP 文件以进行 SQL 查询时遇到问题

Java 克罗地亚语言环境

java - 训练 NER 模型时存在斯坦福 corenlp 错误

java - 带有突变的 CompletableFuture 的恒等函数

java - 在 jpa 中检索自动生成的 id 给空值

java - 是否可以将 JComponent 及其所有子组件绘制到另一个组件?

java - 在数据库的 <div> 标签中显示换行符