编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同。
例如:输入1和2,输出2.
代码如下:
#include<stdio.h>
int bit(int m,int n)
{
int tmp=m^n;
int count=0;
while(tmp)
{
tmp=tmp&(tmp-1);
count++;
}
return count;
}
int main()
{
int m=0;
int n=0;
int count;
printf("请输入您要求的两个数:\n");
scanf("%d %d",&m,&n);
count=bit(m,n);
printf("m,n的二进制表达中,有%d个位不同\n",count);
return 0;
}
运行结果如图:
菜菜的代码,希望能够帮助到你哟!