输入一个十进制整数,求其二进制中0的个数
方法一:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a;
int count = 0;
printf("请输入一个数:");
scanf("%d", &a);
while (a!=-1)
{
a |= (a + 1);
count++;
}
printf("其二进制中0的个数为%d\n", count);
return 0;
}
方法二:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a,i;
int count = 0;
printf("请输入一个数:");
scanf("%d", &a);
for (i = 0;i<32;i++)
{
if ((a & 1) != 1)
{
count++;
}
a >>= 1;
}
printf("其二进制中0的个数为%d\n", count);
return 0;
}
输入一个十进制整数,求其二进制中1的个数
方法一:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a,i;
int count = 0;
printf("请输入一个数:");
scanf("%d", &a);
for (i = 0;i<32;i++)
{
if ((a & 1) == 1)
{
count++;
}
a >>= 1;
}
printf("其二进制中1的个数为%d\n", count);
return 0;
}
方法二:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a;
int count = 0;
printf("请输入一个数:");
scanf("%d", &a);
while (a)
{
a &= (a - 1);
count++;
}
printf("其二进制中1的个数为%d\n", count);
return 0;
}
|