常用位运算详细示例

常用位运算详细示例

注意优先级

去掉最后一位
101101->10110

x >> 1

在最后加一个0
101101->1011010

x << 1

在最后加一个1
101101->1011011

(x << 1)+1

把最后一位变成1
101100->101101

x | 1

把最后一位变成0
101101->101100

(x | 1)-1

最后一位取反
101101->101100

x ^ 1

把右数第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=5

x & (1 << (k-1))

取右数第k位
1101101->1, k=4

x >> (k-1) && 1

把末k位变成1*
101001->101111, k=4

x | (1 << (k-1))

末k位取反
101001->100110, k=4

x ^ (1 << (k-1))

把右边连续的1变成0
100101111->100100000

x & (x+1)

把右起第一个0变成1
100101111->100111111

x | (x+1)

把右边连续的0变成1
11011000->11011111

x | (x-1)

取右边连续的1
100101111->1111

(x ^ (x+1)) >> 1

去掉右起第一个1的左边
100101000->1000

x & (x ^ (x-1))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值