零、位運算符
位運算符就是將數字轉換爲二進制進行計算,位運算符包括:按位與(&)、按位或(|)、按位異或(^)、按位取反(~)、左移動(<<)、右移動(>>)。解釋見下表:
假設 a=10 ,b=12
運算符 | 名稱 | 說明 | 例子 |
---|---|---|---|
& | 按位與 | 如果參與運算的兩個變量,相應位都是1,則該位的結果位1,反之位0 | a&b 結果爲8 |
| | 按位或 | 如果對應的二個二進位有一個爲1時,結果位就爲1 | a |
^ | 按位異或 | 對應的二進位相異時,結果爲1 | a^b 結果爲6 |
~ | 按位取反 | 對數據的每個二進制位取反,即把1變爲0,把0變爲1 | ~a 輸出結果爲 -11 |
<< | 左移動 | 運算數的各二進位全部左移若干位,高位丟棄,低位補0 | a<<11 結果爲20480 |
>> | 右移動 | 運算數的各二進位全部右移若干位 | a>>11 結果爲0 |
一、成員運算符
成員運算符主要是用於在序列中查找是否包含指定的值。成員運算符包含:in、not in。解釋見下表:
假設a=10,b=[1,2,3,4,5,6,7,8,9,0]
運算符 | 說明 | 例子 |
---|---|---|
in | 查找序列中是否存在指定的變量 | a in b 結果爲False |
not in | 查找序列中是否不存在指定的變量 | a not in b 結果爲True |
二、身份運算符
用於檢查兩個值(或變量)是否位於存儲器的同一部分。(兩個變量相等,並不是說完全一樣。)身份運算符包含:is、is not。解釋如下表:
假設a=1,b=1,c=[0,1,2],d=[0,1,2],e=‘hello’,f=‘hello’
運算符 | 說明 | 例子 |
---|---|---|
is | 是否引用的同一個對象 | a is b結果爲True,c is d 結果爲False,e is f 結果爲True |
is not | 是否引用的不是同一個對象 | a is b結果爲False,c is d 結果爲True,e is f 結果爲False |
三、運算符優先級
運算符優先級見下表:
括號可以提高運算符優先級
運算符 | 解釋 |
---|---|
** | 冪運算(優先級最高) |
~± | 按位翻轉, 一元加號和減號 |
* / % // | 乘,除,取模和取整除 |
± | 加法減法 |
>> << | 右移,左移運 |
& | 按位與 |
^ | | 按位異或,按位或 |
<= < > >= | 比較運算符 |
<> == != | 等於運算符 |
= %= /= //= -= += *= **= | 賦值運算符 |
is is not | 身份運算符 |
and or not | 邏輯運算符 |
四、小結
今天所講的運算符在開發中也是經常使用的,需要牢記。