Python位運算符示例
下表列出了所有的Python語言的支持位運算符。假設變量a持有60和變量b持有13,則:
運算符 | 描述 | 示例 |
---|---|---|
& | 二進製AND操作複製一位到一個結果數,如果存在兩個操作數。 | (a & b) = 12 即 0000 1100 |
| | 二進製或複製操作了一個比特,如果它存在一個操作數中。 | (a | b) = 61 即 0011 1101 |
^ | 二進製異或運算符的副本,如果它被設置在一個操作數而不是兩個比特。 | (a ^ b) = 49 即 0011 0001 |
~ | 二進製的補運算符是一元的,並有“翻轉”位的效果。 | (~a ) = -61 即 1100 0011 以2的補碼形式由於帶符號二進製數。 |
<< | 二進位向左移位運算符。左操作數的值左移由右操作數指定的位數。 | a << 2 = 240 即 1111 0000 |
>> | 二進位向右移位運算符。左操作數的值是由右操作數指定的位數向右移動。 | a >> 2 = 15 即 0000 1111 |
示例:
試試下麵的例子就明白了所有的Python編程語言提供了位運算符:
#!/usr/bin/python a = 60 # 60 = 0011 1100 b = 13 # 13 = 0000 1101 c = 0 c = a & b; # 12 = 0000 1100 print "Line 1 - Value of c is ", c c = a | b; # 61 = 0011 1101 print "Line 2 - Value of c is ", c c = a ^ b; # 49 = 0011 0001 print "Line 3 - Value of c is ", c c = ~a; # -61 = 1100 0011 print "Line 4 - Value of c is ", c c = a << 2; # 240 = 1111 0000 print "Line 5 - Value of c is ", c c = a >> 2; # 15 = 0000 1111 print "Line 6 - Value of c is ", c
當執行上麵的程序它會產生以下結果:
Line 1 - Value of c is 12 Line 2 - Value of c is 61 Line 3 - Value of c is 49 Line 4 - Value of c is -61 Line 5 - Value of c is 240 Line 6 - Value of c is 15