public class Demo {
public static void main(String[] args) {
System.out.println(getNum(3));
}
public static int[] countBits(int n) {
// 创建数组, 长度为数字+1, 因为是从0开始计算
int[] ints = new int[n + 1];
// 从0开始, 第一个计数肯定是0
ints[0] = 0;
// 循环数字
for (int i = 1; i < n; i++) {
ints[i] = (getNum(i));
}
return ints;
}
public static Integer getNum(int num) {
// 计数
int count = 0;
while (num > 0) {
// 判断数据是否是2的倍数, 当数字能被2整除时,对应的二进制最后一个数字肯定是0, 例如: 2对应10, 4对应100
int i = num % 2;
if (i == 1) {
count++;
}
// 判断完之后将数据除2, 这个时候舍弃尾数, 因为已经知道数据的尾数是0还是1了
num = num / 2;
}
return count;
}
}
比特位计数
最新推荐文章于 2024-10-01 18:51:18 发布