1.函数返回参数二进制中1的个数
#include<stdio.h>
int count_one_bits(unsigned int value)
{
int num=0;
while (value)
{
if ((value&1)== 1)
num++;
value>>=1;
}
return num;
}
int main()
{
int i;
int num;
printf("请输入");
scanf_s("%d",&i);
num = count_one_bits(i);
printf("%d\n", num);
system("pause");
return 0;
}
2.获取一个数二进制序列中所以偶数和奇数位,分别输出二进制序列
#include<stdio.h>
int main()
{
int num = 0;
int i = 0;
scanf_s("%d", &num);
printf("奇数序列");
for (i = 31; i >= 0; i = i - 2)
{
printf("%d", (num >> i) & 1);
}
printf("\n");
printf("偶数序列");
for (i = 30; i >= 0; i = i - 2)
{
printf("%d", (num >> i) & 1);
}
printf("\n");
system("pause");
return 0;
}
3.输出一个整数的每一位
#include<stdio.h>
int main()
{
int i=0 ;
int a;
printf("请输入");
scanf_s("%d", &i);
while (i > 0)
{
a = i % 10;
i = i / 10;
printf("%d\n", a);
}
system("pause");
return 0;
}
4.两个int整数m和n的二进制表达中,有多少个位不同
#include<stdio.h>
int differ_num_of_bit(int m, int n)
{
int num = 0;
int i = 0;
num = m^n;
while (num)
{
i++;
num = num&(num - 1);
}
return i;
}
int main()
{
int a, b, c;
scanf_s("%d%d", &a, &b);
c = differ_num_of_bit(a, b);
printf("%d\n", c);
system("pause");
return 0;
}