两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?

#include<stdio.h>
#include<stdlib.h>
int bit_dif(int a, int b)
{
int i = 0;
int ret = 0;
int num = 0;
ret = a^b;
while (ret)
{
num++;
ret = ret&(ret - 1);
}
return num;
}
int main()
{
int count = 0;
int num1 = 0;
int num2 = 0;
printf("请输入两个数:\n");
scanf_s("%d %d",&num1,&num2);
count = bit_dif(num1, num2);
printf("%d\n", count);
system("pause");
return 0;
}


结果:

请输入两个数:

1999 2299

7


你可能感兴趣的:(有多少个位(bit)不同?)