思路:用异或^使两数不同的位变为0得到第三个数,在求第三个数二进制中1的个数。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int get_diff_bit(int a, int b)
{
int tmp = a ^ b;
int count = 0;
while (tmp)
{
tmp = tmp & (tmp - 1);
count++;
}
return count;
}
int main()
{
int a = 0;
int b = 0;
scanf("%d%d", &a, &b);
int count = get_diff_bit(a, b);
printf("count = %d\n", count);
return 0;
}