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

相关推荐
wjs20244 分钟前
NumPy 位运算
开发语言
是苏浙14 分钟前
2025年11月17日力扣刷题小记
算法·刷题
ZHE|张恒15 分钟前
设计模式(二)工厂方法模式 — 把创建权限下放给子类,像“可扩展的生产线”
java·开发语言·设计模式
@卞21 分钟前
ST 表相关练习题
数据结构·c++·算法
醒过来摸鱼23 分钟前
9.8 贝塞尔曲线
线性代数·算法·numpy
报错小能手24 分钟前
C++笔记 bind函数模板
开发语言·c++·笔记
Vanranrr37 分钟前
车机项目中的 Widget 设计反思:从“能用”到“好用”的改进方向
c语言·c++·架构
2501_941111521 小时前
C++中的适配器模式
开发语言·c++·算法
2501_941111941 小时前
C++中的适配器模式变体
开发语言·c++·算法
zzz海羊1 小时前
VSCode配置java中的lombok
java·开发语言·vscode