[C语言][题]两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同。

1.

int main()
{
	int n = 0;
	int m = 0;
	scanf("%d %d", &m,&n);
	int count = 0;
	int i = 0;
	for (i = 0; i < 32; i++)
	{
		if (((m>>i) & 1) != ((n>>i) & 1))
		{
				count++;
		}
	}
	printf("%d\n", count);
	return 0;
}

2.

int main()
{
	int count = 0;
	int m = 0;
	int n = 0;
	scanf("%d %d", &m, &n);
	int ret = m ^ n;
	while(ret)
	{
		ret = ret & (ret - 1);
		count++;
	}
	printf("%d\n", count);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/2302_79491024/article/details/133958090