1.写一个函数返回参数二进制中 1 的个数
#include "stdio.h"
int count_one_bits( int tmp)
{int count=0;
while(tmp!=0)
{if(tmp%2==1)
count++;
tmp=tmp>>1;
}
return count;
}
void main()
{
int i;
int n;
printf("输入一个数");
scanf("%d",&n);
i=count_one_bits(n);
printf("%d",i);
return 0;
}
2.获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
#include "stdio.h"
int main()
{
int n=0,i,j;
scanf("%d",&n);
for(i=31;i>=0;i-=2)
{printf("%d\n",(n>>1)&1);}
for(j=30;j>=0;j-=2)
{printf("%d\n",(n>>1)&1);}
return 0;
}
3.输出一个整数的每一位
#include "stdio.h"
int main()
{
int num=0;
printf("请输入一个整数");
scanf("%d",&num);
while(num)
{printf("%d\t",num%10);
num=num/10;
}
return 0;
}
4编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
#include "stdio.h"
int main()
{
int m,n;
int i,j;
int count=0;
printf("请输入两个整数");
scanf("%d %d",&i,&j);
while (i!=0&&j!=0)
{
m=i%2;
n=j%2;
i=i>>1;
j=j>>1;
if(m!=n)
count++;
}
printf("%d",count+1);
return 0;
}