python中的按位運算

2021-10-09 11:54:01 字數 890 閱讀 4954

常見的按位運算有:&、|、~、<<、>>

按位與運算&

print(-5 & 0xf)

print(5 & 0xf)

# 結果為

115

由上可知:python中進行按位與運算結果必然是正數,最高位是符號位的特質消失。主要是限定變數的位數(因為python中沒有int、long來限制位數)

按位或運算 |

print(-5 | 0xf)

print(5 | 0xf)

# 其結果分別為

-1 15

由上可知:python中按位或運算仍然保留最高位的符號位特質

按位異或運算 ^

print(-5 ^ 0xf)

print(5 ^ 0xf)

# 其結果為

-1210

由上可知:python按位異或運算也保留最高位的符號位特質,-5(前八位位0b11110100),0xf(前八位0b00001111)按位異或運算得(0b11110100),然後轉換成整數(最高位是符號位)變成-12

移位運算 << >>

print(-5 << 1)

print(-5 >> 1)

# 其結果是

-10-3

由上可知:移位運算保留最高位是符號位的特質

注:按位與運算會掩蓋最高位是符號位的特質,因此要想最高位仍然充當符號位,必須用剩餘4個進行處理

可解決的問題--劍指offer 65

python 中的按位運算

1 按位運算子是把數字看作二進位制來進行計算的。python 的內建函式 bin 可已將乙個整數數值轉換成相應的二進位制值。示例 2 按位與 參與運算的兩個值,如果其二進位制值對應位都為1,則該位的結果為1,否則該位為 0 示例 3 按位或 只要對應的二個二進位有乙個為 1 時,結果位就為 1,只有...

python的按位運算

華電北風吹 天津大學認知科學與計算重點實驗室 最後修改日期 2015 8 6 python提供了豐富的位運算操作符,例如按位與,按位或,按位異或,左移位,右移位和取反操作,例子 如下 a,b 45,83 bin a bin b 0b101101 0b1010011 a b,bin a b 127,0...

神奇的按位運算 python

先來看leetcode 29上的divide two integers題目要求 divide two integers without using multiplication,division and mod operator.if it is overflow,return max int.就是...