位运算的奇技淫巧

判断奇偶数 (奇数)a&1==1 (偶数)a&1==0

整除2 a>>1

取最低位的1 a&(~(a-1))

判断两个数是否相等 a^b==1 不相等 a^b==0是相等

求一个数二进制位有几个1,用消去1的次数来统计 a&(a-1) 消去最后一位1

是不是2的幂也就是二进制位只有一个1 x&x-1==0

是不是4的幂 首先是4的幂一定也是2的幂 4的幂最大数0x55555555

( x&(x-1)==0 )||((x&0x55555555)!=0)

用位运算计算加法

两个数相加a = 2,b= 3;

2的二进制10+3的二进制11 = 101

考虑不进位sum = a^b;

进位 $b = a&b<<1;

$a = $sum

while($b!=0){
    $sum = $a^$b;
    $b = ($a&$b)<<1;
    $a = $sum;
}

如何快速的将一个奇数变成偶数,偶数变成奇数

(x+1)^1-1

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值