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
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
>>> 

 

posted @ 2018-03-30 20:59  ghostwu  阅读(13752)  评论(0编辑  收藏  举报
Copyright ©2017 ghostwu