#鹏哥C语言#P86
1.方法一:
代码展示:
#include<stdio.h>
int diff_bit(int m,int n)
{
int count=0;
int i=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;
printf("请输入两个数:");
scanf("%d %d",&m,&n);
int ret=diff_bit(m,n);
printf("两个数在二进制中不同位数的个为%d位\n",ret);
return 0;
}
运行结果展示:
2.方法二:
代码展示:
#include<stdio.h>
int diff_bit(int m,int n)
{
int count=0;
int mn=m^n;
while(mn)
{
mn=mn&(mn-1);
count++;
}
return count;
}
int main()
{
int m=0;
int n=0;
printf("请输入两个数:");
scanf("%d %d",&m,&n);
int ret=diff_bit(m,n);
printf("两个数在二进制中不同位数的个为%d位\n",ret);
return 0;
}
运行结果展示: