#include<stdio.h>
#include<stdlib.h>
int main()
{
int diff_count();
int num1 = 0;
int num2 = 0;
scanf("%d", &num1);
scanf("%d", &num2);
int ret = diff_count(num1, num2);
printf("%d\n", ret);
return 0;
}
int diff_count(int x, int y)
{
int tmp = x^y;
int count = 0;
while (tmp)
{
count++;
tmp &= (tmp - 1);
}
return count;
}
理解x^y的含义以及tmp &= (tmp - 1)这俩个表达式。
原文:http://10942013.blog.51cto.com/10932013/1730491