#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int m = 0;
int n = 0;
int j = 0;
int i = 0;
scanf("%d %d", &m, &n);
for (i = 0; i < 32; i++)
{
if (((m >> i) & 1) != ((n >> i) & 1))
//和数字1按位与,然后两个结果进行对比
//不要直接写"(m>>i)!=(n>>i)"因为m和n是字符串就不行了
{
j++;
}
}
printf("%d\n", j);
return 0;
}
或
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int m = 0;
int n = 0;
int j = 0;
int i = 0;
scanf("%d %d", &m, &n);
int k = n ^ m;
//将n和m进行异或,然后数k里1的个数
for (i = 0; i < 32; i++)
{
if (((k >> i) & 1) == 1)
//和数字1按位与,然后两个结果进行对比
//不要直接写"(m>>i)!=(n>>i)"因为m和n是字符串就不行了
{
j++;
}
}
printf("%d\n", j);
return 0;
}