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.图示
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)