要计算整数中的set位,Java代码如下-
import java.io.*; public class Demo{ static int set_bits_count(int num){ int count = 0; while (num > 0){ num &= (num - 1); count++; } return count; } public static void main(String args[]){ int num =11; System.out.println("11中的set位数为 "); System.out.println(set_bits_count(num)); } }
输出结果
11中的set位数为 3
以上是Brian Kernighan算法的一个实现。一个名为Demo的类包含一个名为set_bits_count的静态函数。此函数检查数字是否为0,如果不是,则将一个名为count的变量赋值为0。它对数字和减1的数字执行逻辑与(&)操作。
接下来,计数值在此操作之后递减。最后,返回计数值。在main函数中,定义了需要查找集位的值。通过将数字作为参数传递来调用该函数。相关消息显示在控制台上。