#include <stdio.h> int get_differ(int n,int m); //求二进制中不同位的个数,实现内容:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同? 输入1999 2299 得出7 //思路:先写逻辑,我 // 我们可以用 异或 将 m ^ n 得出一个值,这个值得二进制位代表有多少个位不同,再求一个数二进制含1的个数,得出结果 int main() { int n,m; scanf("%d%d",&n,&m); int count = get_differ(n,m); printf("%d",count); return 0; } int get_differ(int n,int m) { int temp = n ^ m; int count = 0; while(temp) { temp = temp & (temp - 1); count++; } return count; }
求二进制中不同位的个数
最新推荐文章于 2024-11-09 20:38:27 发布