题目描述:
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
Java实现:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
int input = sc.nextInt();
int output = 0;
while(input != 0) {
/*
if (input % 2 == 1) {
output++;
}
input = input / 2;
*/
if ((input & 1) == 1) {
output++;
}
input = input >> 1;
}
System.out.println(output);
}
}
}
知识点:
- 用位运算效率更高,if((input & 1) == 1) 这里需要把&运算括起来,否则后先进行==运算