二进制位不同,可以用异或,相异为1,再用上一题中求1的方法得到不同位个数
#include <stdio.h>
int main()
{
int a=1999;
int b=2299;
int count=0;
int tmp=a^b;//^异或,相异为1,得到相异的数后再看其中有几个1,就知道两者不同位个数
while(tmp)
{
tmp=tmp&(tmp-1);
count++;
}
printf("%d\n",count);
return 0;
}