1.说明

python中的按位操作符我们一般不常见,但是很有用: 

  按位的运算,都是按参加运算的数的二进制形式进行运算。

    1.与运算:A与B值均为1时,A、B与的运算结果才为1,否则为0 (运算符:&)

    2.或运算:A或B值为1时,A、B或的运算结果才为1,否则为0  (运算符:|)

    3.异或运算:A与B不同为1时,A、B的预算结果才为1,否则为0  (运算符:^)

    4.按位翻转(按位取反):将内存中表示数字的2进制数取反0取1,1取0 (运算符:~)

# 与运算:5&3计算过程为 0101(2)&0011(2)=0001(2)=1
# 或运算:5|3计算过程为 0101(2)|0011(2)=0111(2)=7
# 异或运算:5^3计算过程为 0101(2)^0011(2)=0110(2)=6

2.图示

python按字节异或 python按位异或怎么算_运算符

3.例题

关于落单的数:    

  给出 2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。样例:给出 [1,2,2,1,3,4,3],返回 4。

class Solution:
    def singleNum(selfself, A):
        len_A = len(A)
        if len_A == 0:
            return 0
        elif len_A == 1:
            return A[0]
        else:
            result = A[0]
            for i in range(1, len_A):
                result ^= A[i]  # result = result ^ A[i]
            return result


lis = [1, 2, 2, 1, 3, 4, 3]
me = Solution()
ret = me.singleNum(lis)
print(ret)