求两个数的二进制中有多少位不同

核心

  • 按位与 &
  • 移位 >>

具体实现

int Diff(int a, int b){
	int count = 0;
	while (a != 0 || b != 0){//当其中一个数不为 0 就不终止循环
		if ((a & 1) != (b & 1)){
			count++;
		}
		a = a >> 1;
		b = b >> 1;
	}
	return count;
}
int main () {
	int a = 3;
	int b = 0;
	printf(" %d 个比特位不同\n", Diff(a, b));
	return 0;
}
发布了60 篇原创文章 · 获赞 5 · 访问量 2657

猜你喜欢

转载自blog.csdn.net/qq_44905386/article/details/99685349
今日推荐