在一些网络类的脚本中有时会发现这些符号连接着两个变量。
当符号连接的两个变量全为数值时,这些符号会按位(二进制)对两个变量进行计算。

小贴士:如何利用微软计算器快速将数字转换为二进制?打开微软计算器,按照相应进制选择输入即可。本文我们使用DEC模式。
binary 二进制 ---- BIN
octal 八进制 ---- OCT
hexadecimal 十六进制 --- HEX
decimal 十进制 -- DEC
1.& - 和
按位和,两值同一位均为1时,结果为1,否则为0
Python
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
Python
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
Python
print(3^1)
# 2
print(4^5)
# 1我们将以上所有数字转换成二进制,可得以下结果:
- 3:
0000 0011,1:0000 0001->0000 0011^0000 0001=0000 0010-> 再转换成十进制:2 - 第二个你来试试看!(累了..)
发表回复