输入两个整数,求两个整数二进制格式有多少个位不同?
首先这个问题有多种解法,我来讲述一下我看到这个问题首先想到的一个办法,将这个两个数分别按位与上一个1,得到的数字要是不同,那么我们的统计变量count++;接下来我们将这两个数进行右移,进入下一次循环,代码如下
#include<stdio.h>
int main()
{
int a, b, i;
int count = 0;
scanf_s("%d%d", &a, &b);
for (i = 0; i < 32; i++)
{
int m, n;
m = (a >> i) & 1;
n = (b >> i) & 1;
if (m != n)
{
count++;
}
}
printf("%d", count);
return 0;
}