python運算子 之位運算子

2021-09-07 04:17:19 字數 1073 閱讀 7030

支援的資料型別有數字;集合(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...