python位运算符

运算符 功能 描述
& 按位与运算 a & b,将 a 和 b 的对应二进制位进行与运算并返回
| 按位或运算 a | b,将 a 和 b 的对应二进制位进行或运算并返回
~ 按位取反运算 ~a,将 a 的对应二进制位进行取反运算并返回
^ 按位异或运算 a ^ b,将 a 和 b 的对应二进制位进行异或运算并返回
<< 左移运算 a << b,将 a 的对应二进制位左移 b 位并返回
>> 右移运算 a >> b,将 a 的对应二进制位右移 b 位并返回

1、按位与(&)

按位与的运算规律和“逻辑与”类似,运算规则可以简单记为:“同 1 为 1,其余为 0”。

a,b=9,5
print(a&b)

2、按位或( | )

按位与的运算规律和“逻辑或”类似,运算规则可以简单记为:“同 0 为 0,其余为 1”。

 

3、按位取反(~)

按位取反操作是把一个数的补码的所有二进制位的 1 变成 0,0 变成 1(包括符号位),不知道补码的知识也没关系,可以把按位取反的作用简单地记为取相反数后减一

4、按位异或(^)

按位异或(exclusive OR,可简写为 XOR)是一种规律特殊且重要的位运算,在 Python 中使用符号 ^ 进行运算。异或运算不仅参与一些算法的关键步骤,也是很多题目中的重要考点。其运算规律可以简单记为:“相同为0,不同为1”。

 

print(6 ^ 10)

12

 

Tips:

1、异或运算也被称为“按位模 2 加”,因为它的规律可以看成将相应二进制位相加后模2,例如:1 ^ 1 = (1 + 1) % 2 = 0。

2、任何数字和0进行异或的答案都是它本身,例如:10 ^ 0 = 10。

3、任何数字和它本身进行异或的答案都是0,例如:10 ^ 10 = 0。

4、异或满足交换律:a ^ b = b ^ a。

5、异或具有“知一得二”的性质,也就是知道某个异或等式后就能得出其他两个等式。例如:已知 a ^ b = c,一定可知:a ^ c = b 以及 b ^ c = a。

 

5、左移运算(<<)与右移运算(>>)

左移运算的实质为将数字的补码中的非符号位最左端一位删除,并在非符号位的最右端补 0。右移运算的实质为将数字的补码的中的非符号位最右端一位删去,并把非符号位的最左端补 0。如果不理解补码的话,可以简单记为:左移运算相当于乘 2,右移运算相当于除 2 并向下取整

Python 左移右移运算的语法含有两个操作数,第一个操作数为被操作的数字,第二个则为操作的次数。

 

print(2<<4) #2左移4次,2*2*2*2*2=32
print(4<<2) #4左移2次,4*2*2=16
print(7>>1) #7右移1次,7%2取整=3
print(2>>1) #2右移1此,2%2=1

你可能感兴趣的:(python)