位运算的技巧

1.去掉最后一位

x>>1

2.在最后加一个0

x<<1

3.在最后加一个1

(x<<1)+1

4.把最后一位变成1

x|1

5.把最后一位变成0

(x|1)-1

6.最后一位取反

x^1

7.把右数第k位变成1

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

8.把右数第k位变成0

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

9.右数第k位取反

x^(1>>(k-1))

10.取出末k位

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

11.取右数第k位

(x>>(k-1))&1

12.把末k位变成1

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

13.把末k位取反

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

14.把右边连续的1变成0(从最右边开始)

(x&(x+1))

15.把右边第一个0变成1

x|(x+1)

16.把右边连续的0变成1

x|(x-1)

17.取右边连续的1

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

18.去掉右边起第一个1的左边

x%(-x)

posted on 2022-04-19 22:28  zesure  阅读(51)  评论(0编辑  收藏  举报

导航