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

相关推荐
從南走到北9 分钟前
JAVA同城信息付费系统家政服务房屋租赁房屋买卖房屋装修信息发布平台小程序APP公众号源码
java·开发语言·小程序
月夜的风吹雨10 分钟前
【C++红黑树】:自平衡二叉搜索树的精妙实现
开发语言·c++·红黑树
TechMasterPlus20 分钟前
java:单例模式
java·开发语言·单例模式
Star在努力21 分钟前
C语言复习八(2025.11.18)
c语言·算法·排序算法
赖small强26 分钟前
【Linux C/C++开发】第26章:系统级综合项目理论
linux·c语言·c++
南山安28 分钟前
从反转字符串看透面试官的“内心戏”:你的算法思维到底怎么样?
javascript·算法·面试
雪不下34 分钟前
计算机中的数学:概率(2)
算法
zs宝来了37 分钟前
HOT100-二分查找类型题
算法
_w_z_j_40 分钟前
数组中的最长连续子序列
数据结构·算法
地平线开发者41 分钟前
征程 6E/M 计算平台部署指南
算法·自动驾驶