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

相关推荐
顾人间讥诘1 分钟前
卡特兰数及相关应用场景
算法
天骄t2 分钟前
深入解析栈:数据结构与系统栈
java·开发语言·数据结构
源代码•宸2 分钟前
GoLang并发示例代码1(关于逻辑处理器运行顺序)
开发语言·经验分享·后端·golang
曦樂~2 分钟前
【C++11】引用折叠原理
开发语言·c++
CoderYanger4 分钟前
A.每日一题——3625. 统计梯形的数目 II
java·算法·leetcode·职场和发展
松涛和鸣5 分钟前
24、数据结构核心:队列与栈的原理、实现与应用
c语言·开发语言·数据结构·学习·算法
豐儀麟阁贵10 分钟前
9.1String类
java·开发语言·算法
三炭先生15 分钟前
计算机视觉算法--第一章:概述
人工智能·算法·计算机视觉
佳航张17 分钟前
C语言经典100题---例001---组无重复数字的数
c语言·开发语言
chilavert31817 分钟前
技术演进中的开发沉思-225 Prototype.js 框架
开发语言·javascript·原型模式