码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-05-10 09:45:04      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:cpp   ret   pre   clu   stdio.h   code   content   amp   printf   

//求两个数中不同的位的个数
#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语言】求两个数中不同的位的个数

标签:cpp   ret   pre   clu   stdio.h   code   content   amp   printf   

原文地址:http://www.cnblogs.com/lytwajue/p/6834228.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!