C语言第四十弹---两个整数二进制位不同的个数

C语言求两个整数二进制位不同的个数

遍历法,使用循环获取每一位二进制位数,并让二进制位与1比较,如果相同则忽略,不同则个数增加。

c 复制代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int a = 0;
	int b = 0;
	int count = 0;
	scanf("%d %d",&a,&b);
	for (int i = 0; i < 32; i++)
	{
		if (((a >> i) & 1) != ((b >> i) & 1))//使用>>获取32为二进制位,分别与1比较,两者不证明不同
		{
			count++;
		}
	}

	printf("%d",count);
	return 0;
}

其中判断是否相等也可以使用(((a>>i)^(b>>i))==1)判断。

相关推荐
小羊失眠啦.5 分钟前
用 Rust 实现高性能并发下载器:从原理到实战
开发语言·后端·rust
避避风港13 分钟前
Java 抽象类
java·开发语言·python
cookies_s_s22 分钟前
C++20 协程
linux·开发语言·c++
what_201825 分钟前
list集合使用
数据结构·算法·list
石油人单挑所有36 分钟前
C语言知识体系梳理-第一篇
c语言·开发语言
hetao17338371 小时前
2025-11-13~14 hetao1733837的刷题记录
c++·算法
把csdn当日记本的菜鸡1 小时前
js查缺补漏
开发语言·javascript·ecmascript
hansang_IR1 小时前
【题解】洛谷 P2476 [SCOI2008] 着色方案 [记搜]
c++·算法·记忆化搜索
lkbhua莱克瓦241 小时前
Java练习——数组练习
java·开发语言·笔记·github·学习方法
趙卋傑1 小时前
常见排序算法
java·算法·排序算法