27 lines
655 B
C
27 lines
655 B
C
|
// 请编程, 输入一个整数,输出它的二进制数中1和0的个数。
|
|||
|
#include <stdio.h>
|
|||
|
|
|||
|
int main()
|
|||
|
{
|
|||
|
int inputNum;
|
|||
|
int temp = 0, zeroCnt = 0, oneCnt = 0;
|
|||
|
|
|||
|
printf("请输入一个整数: ");
|
|||
|
scanf("%d", &inputNum);
|
|||
|
|
|||
|
for (int i = 0; temp < inputNum; i++)
|
|||
|
{
|
|||
|
temp = 1 << i;
|
|||
|
// if ((inputNum & temp) == temp)
|
|||
|
// oneCnt++;
|
|||
|
// else if ((inputNum | ~temp) == ~temp)
|
|||
|
// zeroCnt++;
|
|||
|
if (inputNum & temp)
|
|||
|
oneCnt++;
|
|||
|
else
|
|||
|
zeroCnt++;
|
|||
|
}
|
|||
|
|
|||
|
printf("%d 的二进制中 1 有 %d 个, 0 有 %d 个", inputNum, oneCnt, zeroCnt);
|
|||
|
return 0;
|
|||
|
}
|