文章目录
- 一、题目
- 二、分析
- 三、代码实现
提示:以下是本篇文章正文内容,下面案例可供参考
一、题目
二、分析
首先看到这道题我们是求两个整数的二进制位不同位的个数,在操作符中我们详细学到到了按位操作符相关的内容,首先看到要求位的不同我们就先想到按位或(^)操作符,按位操作符的规则就是相同为0,相异为1,我们将两个整数异或放在一个变量中,于是问题就转换为求解一个整数的二进制位数中1的个数,这里可以参考小编所写c语言题目之统计二级制数中1的个数
三、代码实现
#include <stdio.h>
int main() {int a, b;while (scanf("%d %d", &a, &b) != EOF){a = a ^ b;int count = 0;while (a){a = a & (a - 1);count++;}printf("%d\n", count);}return 0;
}