标签:cpp ret pre clu stdio.h code content amp printf
//求两个数中不同的位的个数
#include <stdio.h>
int count_different(int a, int b)
{
int count = 0;
int c = a^b; //a,b中不同的位即为1
while (c)
{
count++;
c = c&(c - 1); //把c中最后一个1去掉
}
return count;
}
int main()
{
printf("%d\n", count_different(3,8)); //3
printf("%d\n", count_different(0, 6)); //2
printf("%d\n", count_different(-1,1)); //31
return 0;
}标签:cpp ret pre clu stdio.h code content amp printf
原文地址:http://www.cnblogs.com/lytwajue/p/6834228.html