# include <stdio.h>
# include <stdlib.h>
int main()
{
int m = 0;
int n = 0;
int i = 0;
int count = 0;
scanf_s("%d%d", &m, &n);
for (i = 0; i < 32; i++)
{
if (m % 2 != n % 2)
{
count++;
}
m = m>>1;
n = n >> 1;
}
printf("%d", count);
system("pause");
return 0;
}
运行结果如下:
模除来获取每一位二进制的原理:
1111对2取模后为11010对2取模后为0
则每次取模后相当于得到的是该次循坏二进制的最后一位
1111对2取整后为111
1010对2取整后为101
取整后相当于将二进制最后一位去掉,开始了下一次循坏