问题标题: 考前福利帖:位运算

2
2
已解决
包涵宇
包涵宇
中级天翼
中级天翼

我写的位运算大全

找出错误2+处者奖励100豆

a<<b   a*2^b

a>>b   a/2^b

a&b    与

  100
 &101
 -----
  100 


a|b    或

  100
 &101
 -----
  101


a^b    异或

  1010
 ^1001
 ------
  0011

=============二进制操作============== 

----------------easy-----------------

a>>1 去掉最后一位

a<<1 末尾加一个0

a|1  最后一位变为1

a^1  最后一位取反 

a&1  取最后一位

a&3  取末两位 

a&7  取末三位 

--------------difficult--------------

(a<<1)+1      末尾加一个1

(a|1)-1       最后一位变为0 

a&(a-1)       去掉a中的最后一个1

a|(a+1)       去掉a中的最后一个0 

a&(a+1)       把a中右起的连续的1变为0 

a|(a-1)       把a中右起的连续的0变为1 

a&((1<<k)-1)  取末k位

a|(1<<(k-1))  将右数第k位变为1

a&~(1<<(k-1)) 将右数第k位变为0

a^(1<<(k-1))  将右数第k位取反

a^((1<<k)-1)  将末k位取反

a>>(k-1)&1    取右数第k位

(a^(a+1))>>1  取右边连续的1

(a^(a-1))&a   去掉右起第一个1的左边 


附录: 
========优先级(有关位运算)=========
1.()
2.+ - * / % ~
3.>>  <<
4.&
5.^
6.|

       PS:祝大家AK全场!


1
已采纳
李宜和
李宜和
高级启示者
高级启示者

或下面的符号咋变成&了?

a<<1为啥是在末尾加个0?

(我最先)

4
酷町扫地僧
酷町扫地僧
资深启示者
资深启示者

不错哦~可以入围下周精品贴呢

0
0
0
0
0
0
0
0
0
0
0
我要回答