求int型正整数在内存中存储时1的个数
题目描述
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
输入描述:
输入一个整数(int类型)
输出描述:
这个数转换成2进制后,输出1的个数
示例1
输入
5
输出
2
C语言实现:
#include<stdio.h>
int main()
{
int n;
int num = 0;
scanf("%d",&n);
while (n != 0)
{
if (n % 2 == 1)
{
num++;
}
n /= 2;
}
printf("%d",num);
return 0;
}
Java实现:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int num = input.nextInt();
int count = 0;
while (num != 0) {
num = num & num - 1;
count++;
}
System.out.println(count);
}
/*public int binary1(int num) {
int count = 0;
while (num != 0) {
num = num & num - 1;
count ++;
}
return count;
}*/
}