常見的按位運算有:&、|、~、<<、>>
按位與運算&
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.就是...