关于<<、>>、~、&、|、^的介绍
a >> b
按位运算符,数字a转化为二进制后,向右移动b位
例:11 >> 2
因此:11 >> 2 == 2 => 1011向右移动2为则为10
a << b
a和b都为数字,数字a转化为二进制后,从左边补足b位数0
或数字a乘以2的b次方
例:11 << 2
11二进制为1011,补足右边2位数后为101100
因此:11 << 2 == 44
~a
数字a取反-1
例如: ~11 == 10
~-10 == 9
a & b
是按位运算,二进制情况下如果相同位数都为1则为1否则为0
例如:10 & 5 = 0 => 1010 & 101 = 0000
a | b
按位运算,二进制情况下如果位数有1个为1则为1否则为0
例如:10 | 5 = 15 => 1010 | 101 = 1111
a ^ b
按位运算,二进制下如果同一位数数字相同则为0,否则不变
例如:6 ^ 2 = 4 => 110 ^ 10 = 100