1. 牛客网题目:OR76 两个整数二进制位不同个数
牛客网OJ链接
描述:
输入两个整数,求两个整数二进制格式有多少个位不同
输入描述:两个整数
输出描述:二进制不同位的个数
示例1
输入:22 33
输出:5
2.思路
不同的个数,想起来咱操作符有一个异或,相同为0 ,相异为1 ,让两个二进制数,异或,得到的二进制结果求其中1的个数,就是不同位的个数。
3. 代码实现
#include <stdio.h>
int main() {
int a = 0;
int b = 0;
int count = 0;
while (scanf("%d %d", &a, &b) != EOF)
{
int c = 0;
c = a ^ b;
int i = 0;
for (i = 0; i < 32; i++)
{
if (c & (1 << i))
{
count++;
}
}
}
printf("%d ", count);
return 0;
}