首先我們需要熟悉python的位運算子:
a = 0011 1100
b = 0000 1101
位運算常用的運算子包括&(按位與), | (按位或),~(按位非),^(按位異或),<< (有符號左移位) ,>>(有符號右移位)。
x^1s = ~x
實現數的位級反轉。1s
表示一串1
利用x^x = 0
可以實現除重。保留唯一乙個不重複的數字。
利用x&mask
可以實現掩碼,只保留想要的位置的數字。利用x|mask
可以實現置位。
n&(-n)
可以實現得到n的最低一位1。其中-n
的二進位制是n的反碼+1。0的反碼是0000
移位運算包括算數和無符號,>>
是算數,會補充相應的符號位。>>>
只補0
x&1
可以用來判斷奇偶。
使用x&(x-1)
可以刪除最低位的乙個1
下面簡單的記錄一些運用位運算的例子:
bin()
函式返回的是字串。如,bin(4)
返回的是"0b100"
class
solution
(object):
defhammingdistance
(self, x, y)
:"""
:type x: int
:type y: int
:rtype: int
"""return
bin(x ^ y)
.count(
'1')
a = a ^ b
b = a ^ b
a = a ^ b
位運算專題
1.寫乙個函式,返回二進位制中1的個數 define crt secure no warnings include include 寫乙個函式,返回引數二進位制中的1的個數 int count one bits unsigned int value return count int main 2.獲...
位運算專題
給定乙個整數,編寫乙個函式來判斷它是否是 2 的冪次方。示例 1 輸入 1 輸出 true 解釋 20 1 示例 2 輸入 16 輸出 true 解釋 24 16 示例 3 輸入 218 輸出 false 異或 相同為0 不同為1 相當於加法 0 0 0 1 0 1 0 1 1 1 1 0 取反 右...
演算法專題 位運算
基本概念 按位與運算 取min 按位或運算 取max 按位異或運算 不進製加法 按位取反運算 按位左移運算 按位右移運算 運算子優先順序表 判斷奇偶a 1大小寫切換c 32求x二進位制中第k位數 x k 1特定位翻轉,01111010後四位翻轉,01111010 00001111交換兩個數a a b...