python移位运算符
程序员文章站
2022-06-26 11:18:28
1,二进制方式 2,移位运算符( >> << ): 箭头向左就是 向左移位 反正 箭头向右 就是向右位移,移位针对的是二进制 如,十进制的1 > 对应的二进制是 0000 0001 1 << 1 : 向左移动1位 0000 0001 >0000 0010( 2 ) 1 << 2 : 向左移动2位 0 ......
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 0 >>> 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 0 >>>
>>> 1 | 1 1 >>> 1 | 0 1 >>> 4 | 1 5 >>>
>>> 1 ^ 1 0 >>> 7 ^ 8 15 >>>
>>> ~5 -6 >>> ~20 -21 >>>