二进制运算的巧妙应用一


按位与运算(&)

前言

	与运算(&):二进制按位与,即两位都为1则值为1,不同则为0.
	例:
			00101100
		  & 10010110
		  ____________
			00000100
    
    我们可以根据其特性进行一些功能的巧妙实现。

一、判断某一个数字是否为2的m次幂

		1、找规律
			2,4,8,16的二进制数为0010,0100,1000,00010000
		2、计算
			由此可见2的次幂其二进制数为1后面补次幂个0,所以将这个数字减去1之后除了最高位其他位为1,
			所以将这个数和减1之后的数字进行与运算其值一定为0.
	例:
			00100000
		  & 00011111
		  _________
			00000000
		3、总结
			如果  n&(n-1)==0   则n是2 的m次幂

二、2的次幂数特性应用

	例:若s=m+n,m=2^M ,n=2^N
			则s&m==m,s&n==n。
	规律:
		2,4,8,16的二进制数为0010,0100,1000,00010000
		则2+4为的二进制为 0110
			0110                              0110 
		& 	0010                            & 0100
		_______________                   _____________
		    0010                              0100
	总结:俩2的幂次方的数相加,其值与这两个被加数的任意一个做与运算(&)得值都为这个被加数本身
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值