编程实现:
两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
输入例子 :
1999 2299
输出例子 : 7
int main()
{
int a = 2;
int b = 1;
int i = 0;
int count = 0;
for (i = 0; i < 32; i++)
{
if ((((a^b) >> i) & 1) == 1)
count++;
}
printf("%d ", count);
system("pause");
return 0;
}
法二:
int main()
{
int a = 0;
int b = 0;
scanf("%d%d", &a, &b);
int m = a ^ b;
int num = 0;
while (m>0)
{
m &= (m - 1);
num++;
}
printf("%d", num);
system("pause");
return 0;
}
结果截图: