Python位運算符有哪些?【每日一個知識點第99期-Python】
在任何編程語言中,計算都是最基本的能力,一般來講,計算可以通過運算符和操作數的組合來完成。Python支持的計算類型有很多,各自也都有使用的運算符,今天我們主要來看一下位運算符。
按位運算符是把數字看作二進制來進行計算的。Python中的按位運算法則如下:
下表中變量 a 為 60,b 為 13,二進制格式如下:
a = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
運算符 | 描述 | 實例 |
---|---|---|
& | 按位與運算符:參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為0 | (a & b) 輸出結果 12 ,二進制解釋: 0000 1100 |
| | 按位或運算符:只要對應的二個二進位有一個為1時,結果位就為1。 | (a | b) 輸出結果 61 ,二進制解釋: 0011 1101 |
^ | 按位異或運算符:當兩對應的二進位相異時,結果為1 | (a ^ b) 輸出結果 49 ,二進制解釋: 0011 0001 |
~ | 按位取反運算符:對數據的每個二進制位取反,即把1變為0,把0變為1 。~x?類似于?-x-1 | (~a ) 輸出結果 -61 ,二進制解釋: 1100 0011,在一個有符號二進制數的補碼形式。 |
<< | 左移動運算符:運算數的各二進位全部左移若干位,由?<<?右邊的數字指定了移動的位數,高位丟棄,低位補0。 | a << 2 輸出結果 240 ,二進制解釋: 1111 0000 |
>> | 右移動運算符:把">>"左邊的運算數的各二進位全部右移若干位,>>?右邊的數字指定了移動的位數 | a >> 2 輸出結果 15 ,二進制解釋: 0000 1111 |
以下實例演示了Python所有位運算符的操作:
實例(Python 2.0+)
#!/usr/bin/Python # -*- coding: UTF-8 -*- a = 60 # 60 = 0011 1100 b = 13 # 13 = 0000 1101 c = 0 c = a & b; # 12 = 0000 1100 print "1 - c 的值為:", c c = a | b; # 61 = 0011 1101 print "2 - c 的值為:", c c = a ^ b; # 49 = 0011 0001 print "3 - c 的值為:", c c = ~a; # -61 = 1100 0011 print "4 - c 的值為:", c c = a << 2; # 240 = 1111 0000 print "5 - c 的值為:", c c = a >> 2; # 15 = 0000 1111 print "6 - c 的值為:", c
以上實例輸出結果:
1 - c 的值為: 12
2 - c 的值為: 61
3 - c 的值為: 49
4 - c 的值為: -61
5 - c 的值為: 240
6 - c 的值為: 15
《Python入門每日一個知識點》欄目是馬哥教育Python年薪20萬+的學員社群特別發起,分享Python工具、Python語法、Python項目等知識點,幫助大家快速的了解Python學習,快速步入Python高薪的快車道。
http://haohuigou.com/73198.html