判断两个数相应的二进制数的不同位有几个?

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main() 
{
	int m = 0;
	int n = 0;
	int j = 0;
	int i = 0;
	
	scanf("%d %d", &m, &n);

	for (i = 0; i < 32; i++)
	{
		if (((m >> i) & 1) != ((n >> i) & 1))
		//和数字1按位与,然后两个结果进行对比
		//不要直接写"(m>>i)!=(n>>i)"因为m和n是字符串就不行了
		{
			j++;
		}

	}

	printf("%d\n", j);

	return 0;
}

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main() 
{
	int m = 0;
	int n = 0;
	int j = 0;
	int i = 0;
	
	scanf("%d %d", &m, &n);

	int k = n ^ m;
	//将n和m进行异或,然后数k里1的个数

	for (i = 0; i < 32; i++)
	{
		if (((k >> i) & 1) == 1)
		//和数字1按位与,然后两个结果进行对比
		//不要直接写"(m>>i)!=(n>>i)"因为m和n是字符串就不行了
		{
			j++;
		}
	}

	printf("%d\n", j);

	return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在数据传输中,采用二进制编码的方式可以更好地抗噪声。二进制编码将数字信息转换为只包含0和1的位序列,而十进制编码则使用数字0到9中的一些组合来表示信息。二进制编码相比十进制编码具有以下几个抗噪声的优势。 首先,二进制编码的存在于不存在是相对容易确定的。由于二进制编码只有两个可能的状态(0和1),接收方在噪声环境下可以根据信号强度确定当前的位值。而十进制编码的多个状态会增加噪声引起的判决错误的可能性。 其次,二进制编码在传输过程中具有较高的容错能力。由于二进制编码只改变一位时只会引起一个位错误,而十进制编码的一位改变可能引起多个数字的错误。这样,在噪声环境下,即使发生了误码,二进制编码的接收方可以更容易通过纠错码等技术纠正误码。 另外,二进制编码可以通过使用同步位同步传输,来保证数据传输的正确性。在二进制编码中,同步位通常为1,用来表示数据的开始。接收方可以根据同步位判断数据传输是否开始,并进行相应的数据解析。而十进制编码没有明确的同步位,容易出现数据解析错误。 综上所述,二进制编码相对于十进制编码在抗噪声方面有一定的差异。二进制编码由于只有两种状态,容易确定存在与不存在,具有较高的容错能力和同步传输特性,相对于十进制编码更具有抗噪声能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值