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