常用的位运算

功能 示例 位运算
去掉最后一位 (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=4) 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)
 取右边连续的1  (100101111->1111) (x^(x+1))>>1
 去掉右起第一个1的左边  (100 101000->1000) x&(x^(x-1))

 

 

 

posted @ 2020-05-02 23:43  -╬-  阅读(92)  评论(2)    收藏  举报