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;
}