C语言求两个数中不同的位的个数

Posted lytwajue

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言求两个数中不同的位的个数相关的知识,希望对你有一定的参考价值。

//求两个数中不同的位的个数
#include <stdio.h>
int count_different(int a, int b)
{
	int count = 0;
	int c = a^b;        //a,b中不同的位即为1
	while (c)
	{
		count++;
		c = c&(c - 1);  //把c中最后一个1去掉
	}
	return count;
}
int main()
{
	printf("%d\n", count_different(3,8));   //3
	printf("%d\n", count_different(0, 6));  //2
	printf("%d\n", count_different(-1,1));  //31
	return 0;
}

以上是关于C语言求两个数中不同的位的个数的主要内容,如果未能解决你的问题,请参考以下文章

求C语言程序,从1~2012中取k个数,取出的数中任意两个数之差不能为5或8,求k的最大值

C语言提供的位运算符

c语言编程 求两个超过200位的非负整数的和

用c语言编写程序 输入一个正整数n,求1到n的数中1出现的个数

[C语言]习题练习3

C语言中啥是一个8位的整数