在一些网络类的脚本中有时会发现这些符号连接着两个变量。
当符号连接的两个变量全为数值时,这些符号会按位(二进制)对两个变量进行计算。
![Python中 & | ^ 的使用 https://doupoa.site/wp-content/uploads/2021/11/1637495435-微信截图_20211121195011.png](https://doupoa.site/wp-content/uploads/2021/11/1637495435-微信截图_20211121195011.png)
小贴士:如何利用微软计算器快速将数字转换为二进制?打开微软计算器,按照相应进制选择输入即可。本文我们使用DEC模式。
binary 二进制 —- BIN
octal 八进制 —- OCT
hexadecimal 十六进制 — HEX
decimal 十进制 — DEC
1.& – 和
按位和,两值同一位均为1时,结果为1,否则为0
print(3&1)
# 1
print(21&24)
# 0
我们将以上所有数字转换成二进制,可得以下结果:
- 3 : 0000 0011 , 1 : 0000 0001 -> 0000 0011 & 0000 0001 = 0000 0001 -> 再转换成十进制:1
- 21 : 0001 0101 , 24: 0001 0000 -> 0001 0101 & 0001 0000 = 0000 0000 -> 再转换成十进制:0
2. | – 或
按位或,当同位上至少有一个值为1时,结果为1,反之为0
print(3|5)
# 7
print(7|10)
# 15
我们将以上所有数字转换成二进制,可得以下结果:
- 3: 0000 0011 , 5: 0000 0101 -> 0000 0011 | 0000 0101 = 0000 0111 -> 再转换成十进制:7
- 7: 0000 0111 , 10: 0000 1010 -> 0000 0111 | 0000 1010 = 0000 1111 -> 再转换成十进制:15
3.^ – 异或
按位异或,当同位值不同时为1,反之相同为0
print(3^1)
# 2
print(4^5)
# 1
我们将以上所有数字转换成二进制,可得以下结果:
- 3:0000 0011 ,1:0000 0001 -> 0000 0011 ^ 0000 0001 = 0000 0010 -> 再转换成十进制:2
- 第二个你来试试看!(累了..)
发表回复