位运算

对于位运算,运算符有:&(与),|(或),^(异或),~(取反,不分正负数),<<(按位左移,右边补0),>>(按位右移,正数则左边补0)

 

而位运算则可以按照以下这几步来处理

1、确定符号

得到1 -> |1    其它位0       (任何数或1,得到1;任何数或0,为本身,这样可以得到)
得到0 ->&0  其它位1        (任何数与0,得到0;任何数与1,为本身,这样可以得到)
取反->^1     其它位0         


2、确定数字


3、构造上一步的数字  

例:
把右数第k位变成1 | (101001->101101,k=3) |     x |=  (1<<(k-1))
把右数第k位变成0 | (101101->101001,k=3) |    x &= ~(1<<(k-1))    
右数第k位取反 | (101001->101101,k=3) |      x^= (1<<(k-1))
取末三位 | (1101101->101) | x & 7
取末k位 | (1101101->1101,k=4) | x & ((1 << k)-1)
取右数第k位 | (1101101->1,k=4) | (x >> (k-1)) & 1

 

 

根据上面的3步,就可以将绝大部分的位运算解决

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值