支援的資料型別有數字;集合(set)僅支援「&」(交集)「|」(並集)「^」(不同集),其他型別都不支援位運算。
按位運算子是把數字看作二進位制來計算的。
位運算子作用於所有的位上,並且按位運算。
python中按位運算法則如下(假設a=60,b=13):
操作符描述例項&
按位與運算子,當且僅當兩個運算元的某一位都非0時,該位的結果才為1。
(a&b)得12,即0000 1100
|按位或運算子,只有兩個運算元的某一位有乙個非0時,該位的結果才為1。
(a|b)得61,即0011 1101
^按位異或運算子,兩個操作符的某一位不相同時,該位的結果為1。
(a^b)得49,即0011 0001
~按位補運算子,翻轉運算元的每一位。
(~a)得-60,即1100 0011
<<
按位左移運算子,左運算元按位左移右運算元指定的位數。
a<<2得240,即1111 0000
>>
按位右移運算子,左運算元的值按右運算元指定的位數右移。
a>>2得15,即0000 1111
例項如下:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
# 位運算子
a=60 #60=0011 1100
b=13 #13=0000 1101
c=0c=a&b; #12=0000 1100
print("1-c的值為: ",c)
c=a|b; #61=0011 1101
print("2-c的值為:",c)
c=a^b; #49=1111 0000
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)
運算子之位運算子
右移 負數 無符號右移 或 異或 與 非 說明 位運算子都是作用在二進位製上的 比如 n 50 n 1 結果是多少?100 n 2 結果是多少?200 n 5 結果是多少?1600 為什麼會是這樣的呢?運算的邏輯如下 1,n 50 2,n的二進位制是 0011 0010 3,0011 0010 左移...
位運算子,「,」逗號運算子,
位運算子有 按位與 按位或 按位異或 按位取反 優先順序從高到低,依次為 按位與運算有兩種典型用法,一是取乙個位串資訊的某幾位,如以下 擷取x的最低7位 x 0177。二是讓某變數保留某幾位,其餘位置0,如以下 讓x只保留最低6位 x x 077。按位或運算的典型用法是將乙個位串資訊的某幾位置為1。...
ECMAScript 運算子 位運算子
位運算子是在數字底層 即表示數字的 32 個數字 進行操作的 重溫整數 ecmascript 整數有兩種型別,即有符號整數 允許用正數和負數 和無符號整數 只允許用正數 在 ecmascript 中,所有整數字面量預設都是有符號整數,這意味著什麼呢?有符號整數使用 31 位表示整數的數值,用第 32...