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)判断。

相关推荐
Rsun04551几秒前
3、Java 工厂方法模式从入门到实战
java·开发语言·工厂方法模式
wjs20243 分钟前
C++ 基本的输入输出
开发语言
CoovallyAIHub6 分钟前
混合训练反而更差?VLM Agent在训练前协调跨数据集标注,文档布局检测F-score从0.860提升至0.883
算法·架构·github
鸿途优学-UU教育8 分钟前
教材质量——法考培训的根基与底气
算法
_深海凉_21 分钟前
LeetCode热题100-最大数(179)
算法·leetcode·职场和发展
码云数智-园园30 分钟前
Python的GIL锁如何影响多线程性能?有哪些替代方案?
开发语言
咬_咬34 分钟前
go语言学习(map)
开发语言·学习·golang·map
古城小栈35 分钟前
rustup 命令工具,掌控 Rust 开发环境
开发语言·后端·rust
lly2024061 小时前
NumPy 高级索引
开发语言
剑挑星河月1 小时前
763.划分字母区间
数据结构·算法·leetcode