题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
解:使用 1 不断左移,然后与 n 相与,得到的结果不是 0 则增加一个 1 的数量。代码如下:
public class NumOf1 {
public static void main(String[] args) {
int i = numOf1(5);
System.out.println(i);
}
public static int numOf1(int n) {
int count = 0;
int flag = 1;
while (flag < 0) {
if ((n & flag) != 0) {
count++;
}
flag = flag << 1;
}
return count;
}
}
本文介绍了一种计算整数(包括负数)二进制表示中1的个数的方法,并提供了一个Java实现示例。通过将1不断左移并与目标数进行按位与操作来统计1的个数。
1018

被折叠的 条评论
为什么被折叠?



