python移位运算符
1,二进制方式
>>> bin( 1 ) '0b1' >>> bin( 10 ) '0b1010' >>> a = 0b10 >>> a 2 >>>
2,移位运算符( >> << ): 箭头向左就是 向左移位 反正 箭头向右 就是向右位移,移位针对的是二进制
如,十进制的1 ---> 对应的二进制是 0000 0001
1 << 1 : 向左移动1位
0000 0001 --->0000 0010( 2 )
1 << 2 : 向左移动2位
0000 0001 --->0000 0100( 4 )
2 << 2 : 2向左移动2位
0000 0010 --->0000 1000( 8 )
>>> 1 << 1 2 >>> 1 << 2 4 >>> 2 << 2 8 >>>
向右移动是一样的道理,先把数转成二进制,再向右移动对应的位数
>>> 1 >> 1>>> 2 >> 1 1 >>> 3 >> 1 1 >>> 6 >> 1 3 >>>
6( 0000 0110 ) ---->经过 (6 >> 1) 0000 0011( 3 )
1.与运算:A与B值均为1时,A、B与的运算结果才为1,否则为0 (运算符:&)
2.或运算:A或B值为1时,A、B或的运算结果才为1,否则为0 (运算符:|)
3.异或运算:A与B不同为1时,A、B的运算结果才为1,否则为0 (运算符:^)
4.按位翻转(按位取反):将内存中表示数字的2进制数取反0取1,1取0(运算符:~)
>>> 1 & 1 1 >>> 1 & 0 0 >>> 4 & 1>>>
>>> 1 | 1 1 >>> 1 |1 >>> 4 | 1 5 >>>
>>> 1 ^ 1>>> 7 ^ 8 15 >>>
>>> ~5 -6 >>> ~20 -21 >>>