XOR Python

1025 ワード

PythonのXOR演算子は「排他的論理和」とも呼ばれます.つのビットが同一のXOR出力を0とし、2ビットが異なっている場合、それはビット単位で2つのバイナリ番号を比較し、XORは1として出力します.
Pythonのビット演算子はバイナリ演算子とも呼ばれます.計算において、整数は最初にバイナリに変換される.そして、その後、操作はビットずつ実行される.
a=  5  #0101
b = 3  #0011

result  = (a ^ b) #0110

print(result)

# Output
# 6 (0110)
print(True ^ True) // False
print(True ^ False) // True
print(False ^ True) // True
print(False ^ False) //False
[ 7 , 3 , 3 , 4 , 4 , 5 , 5 ]で非重複を見つける
def singleNumber(self, nums: List[int]) -> int:
    n=len(nums)
    r=nums[0]
    for i in range(1,n):
        r = r ^ nums[i] 

    return r

r = 7 ^ 3 ^ 5 ^ 4 ^ 5 ^ 3 ^ 4

Since XOR is associative and commutative, above
expression can be written as:
r = 7 ^ (3 ^ 3) ^ (4 ^ 4) ^ (5 ^ 5)
= 7 ^ 0 ^ 0 ^ 0
= 7 ^ 0
= 7
信用:https://itsmycode.com/xor-in-python/