package com.example.demo.algorithm;
/**
* @Description :
* 统计一个数的二进制位有几个1
*
* @Author : Darren
* @Date : 2021 年 02 月 07 日 20:06:18
* @since : 1.0
*/
public class J010_CountBinary {
public static void main(String[] args) {
int maxValue = 100000;
int num = J001_SelectSort.generateRandom(maxValue);
System.out.println(countBinary(num));
}
public static int countBinary(int num){
int count = 0;
while (num != 0){
int rightOne = num & (~num + 1);
count++;
//如果num为负数 那么就不行 异或会把最右侧的1抹掉
//num -= 1;
num ^= rightOne;
}
return count;
}
}
【知识积累】统计一个数的二进制位有几个1
猜你喜欢
转载自blog.csdn.net/axin1240101543/article/details/113758108
今日推荐
周排行