#include <stdio.h>
int count_one_bits (unsigned int value)
{
int i=0;
for (i=0;i<32;i++)
{
if (value>>i&1)
> 在按二进制序列循环的32次中,不能改变value的取值。
{
count ++;
}
}
return count ;
}
int main ( )
{
int value=0;
int ret=0;
scanf ("%d",&value);
ret=count _one_bites(value);
printf ("%d ",ret);
return 0;
}
获取一个数二进制序列中的所有奇数位和偶数位,分别输出二进制数列
#include <stdio.h>
int main ( )
{
int value =0;
int i=0;
printf ("请输入一个整数:\n);
scanf ("%d",&value);
printf ("偶数序列为:\n);
for (i=31;i>0;i=i-2)
{
printf ("%d",value>>i&1);
}
printf ("奇数序列为:\n);
for (i=30;i>=0;i=i-2)
{
printf ("%d ",value>>i&1);
}
return 0;
}
输出一个整数的每一位:
int Print_one (int n)
{
if (n>9)
Print_one(n/10);
printf ("%d ",n%10);
}
int main ( )
{
int n=0;
scanf ("%d",&n);
Print_one(n);
return 0;
}
编程实现: 两个Int型(32位)整数m和n的二进制表达中,有多少个位不同?
#include <stdio.h>
int Difer_bits (int m,int n)
{
int i=0;
int count =0;
for (i=0;i<32;i++)
{
if ((m>>i&1)!=(n>>i&1))
{
count ++;
}
}
return count ;
}
int main ( )
{
int m=0;
int n=0;
int ret =0;
scanf ("%d%d",&m,&n);
ret =Difer_bits(m,n);
printf ("%d ",ret);
return 0;
}
- 求一个数的二进制序列的表示,都可以用for 循环配合n>>i&1来使用。