/*
两个int32整数m和n的二进制表达,计算有多少个位(bit)不同?
一行中给定两个数字
输出这两个数字中bit不同的个数
*/
#include<stdio.h>
int main(int argc,char *argv[])
{
int m[32]={0},n[32]={0};
int a,b,cnt,t,i;
scanf("%d %d",&a,&b);
cnt=0;
while(a)
{
t=a%2;
a/=2;
m[cnt++]=t;
}
cnt=0;
while(b)
{
t=b%2;
b/=2;
n[cnt++]=t;
}
int result=0;
for(i=0;i<32;i++)
{
if(m[i]!=n[i])
{
result++;
}
}
printf("%d\n",result);
return 0;
}
原文:https://www.cnblogs.com/lijianmin6/p/10707665.html