当前位置 : 主页 > 编程语言 > c语言 >

计算两个数二进制中的不同位的个数

来源:互联网 收集:自由互联 发布时间:2023-09-07
#includestdio.h//计算两个数二进制中的不同位的个数////int count_diff_bit(int m, int n)//{//int i = 0,count=0;//for (; i 32; i++)//{//if ((n % 2) != (m % 2))//count++;//n /= 2, m /= 2;//}// return count;////}//int count_diff_b

计算两个数二进制中的不同位的个数_位操作符的应用

计算两个数二进制中的不同位的个数_位操作符的应用_02

计算两个数二进制中的不同位的个数_位操作符的应用_03

#include<stdio.h>
//计算两个数二进制中的不同位的个数
//
//int count_diff_bit(int m, int n)
//{
//	int i = 0,count=0;
//	for (; i < 32; i++)
//	{
//		if ((n % 2) != (m % 2))
//			count++;
//		n /= 2, m /= 2;
//	}
// return count;
//
//}
//int count_diff_bit(int m, int n)
//{
//	int count = 0;
//	for (int i=0;i<32;i++)
//	{
//		if ((m & 1) != (n & 1))
//			count++;
//		m = m >> 1, n = n >> 1;
//	}
// return count;
//}
int count_diff_bit(int m, int n)
{
	int count = 0;
	int t = m ^ n;
	while(t )
	{
		count++;
		t = t & (t - 1);
	}
	return count;
}
int main()
{
	int m = 0, n = 0;
	scanf("%d %d", &m, &n);
	int count = count_diff_bit(m, n);
	printf("%d\n", count);
	return 0;
}
上一篇:数据结构 ---&gt; 栈区
下一篇:没有了
网友评论