python 中 & (按位与) 和 | (按位或) 是把 2个数据转为二进制然后在做相应的计算
下面详细说下
- a = 10 # 10的二进制为1010
- b = 18 # 18的二进制为10010
- """
- 按位与运算符:
- & : 如果两个相应位都为1,则该位的结果为1,否则为0
- 01010
- 10010
- 计算的结果为:
- 00010
- 把二进制00010转10进制结果为2,所以下面的打印结果应该为2
- """
- print(a & b) # 打印结果为2
-
- """
- 按位或运算符:
- | : 只要对应的二个二进位有一个为1时,结果位就为1
- 01010
- 10010
- 计算的结果为:
- 11010
- 把二进制11010转10进制结果为26,所以下面的打印结果应该为26
- """
- print(a | b) # 打印结果为26
- """
- 按位异或运算符:
- ^ : 当两对应的二进位相异时,结果为1
- 01010
- 10010
- 计算的结果为:
- 11000
- 把二进制11000转10进制结果为24,所以下面的打印结果应该为24
- """
- print(a ^ b) # 打印结果为24
- """
- 按位取反运算符:
- ~ : 对数据的每个二进制位取反,即把1变为0,把0变为1
- 01010
- 计算的结果为:
- 10101
- 把二进制10101转10进制结果为-11,所以下面的打印结果应该为-11
- """
- print(~a) # 打印结果为-11