主函数
int main()
{
int m=0;
int n=0;
int count =0;
scanf("%d %d",&m,&n);
int ret =m^n; //按二进制异或相同为0 相异为1,再存到ret中
count = NumberOf1(ret);
printf("%d",count);
}
判断ret中1的个数
#include <stdio.h>
int NumberOf1(int n)//判断ret二进制1的个数
{
int count=0;
while(n)
{
n=n&(n-1);
count++;
}
return count;
}
//解释:n=n&(n-1);
//当n=15 二进制 1111 n
//n-1=14 二进制 1110 n-1 =>n&(n-1)赋值为n
//n=14 二进制 1110
//n-1=13 二进制 1101 n-1 =>n&(n-1)赋值为n
//反复操作同时count++;以此计数