计算二进制数中1的个数
输入一个整数,计算出该整数对应二进制数中 1 的个数(整数包含正整数和负整数)
public static void main(String[] args) {
System.out.println(solution03(-4)); // 30
System.out.println(Integer.toBinaryString(-4));// 11111111111111111111111111111100
}
/**
* 该算法 对整数对应的二进制数 进行运算
* 运算方法为 n = n & (n - 1 )
* 即 n & (n - 1 ) = 0110 & 0101 = 0100 赋值给 n, COUNT++
* 0100 & 0011 = 0000 赋值给 n ,COUNT++
* n = 0 时,结束运算
*/
public static int solution03(int num) {
int count = 0;
while (num != 0) {
num = (num - 1) & num;
count++;
}
return count;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步