题目描述
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
输入描述:
输入一个整数(int类型)
输出描述:
这个数转换成2进制后,输出1的个数
示例1
输入
5
输出
2
代码1:
//第十五题求int型正整数在内存中存储时1的个数
#include<iostream>
#include<string>
using namespace std;
int main()
{
int iNum;
cin >> iNum;
char pNum[33]{ 0 };
int iCount = 0;
itoa(iNum, pNum, 2);
for (int i = 0; pNum[i] != '\0'; i++)
{
if (pNum[i] == '1')
{
iCount += 1;
}
}
cout << iCount << endl;
system("pause");
return 0;
}
代码2:
//第十五题求int型正整数在内存中存储时1的个数
#include<iostream>
using namespace std;
int main()
{
int iNum;
cin >> iNum;
int iCount = 0;
while (iNum)
{
if (iNum & 1)
{
iCount += 1;
}
iNum = iNum >> 1;
}
cout << iCount << endl;
return 0;
}
代码3:
//第十五题求int型正整数在内存中存储时1的个数
#include<iostream>
using namespace std;
int main()
{
int iNum;
cin >> iNum;
int iCount = 0;
while (iNum)
{
iCount += iNum & 1 ? 1 : 0;
iNum = iNum >> 1;
}
cout << iCount << endl;
return 0;
}