引言
本文主要介绍位运算符,实际上Python有以下7类运算符:
[赋值运算符]、[比较运算符]、[算术运算符]、[逻辑运算符]、[身份运算符]、[成员运算符]、[位运算符]
位运算符
按位运算符是把数字看做二进制来运算的,位运算符分两部分:1.位逻辑运算符 2.位移运算符
在二进制中1通常为 True,0通常为 False
位逻辑运算符包括
| 与 | 或 | 异或 | 取反 |
|---|---|---|---|
| & | | | ^ | ~ |
位移运算符包括
| 左移 | 右移 |
|---|---|
| << | >> |
位逻辑运算符
二进制中
1代表 True,0代表 False
-
&与运算符,两数为 True 时结果为 True,否则为 False
-
|或运算符,两数只要有一个为True,结果就为True,否则为False
-
^异或运算符,当两数不一致时,结果为 True,两数一致时结果为 False
-
~取反运算符,对二进制进行取反,即1取反为0,0取反为1
# 二进制取反
a = 12 # 1100
print( ~a ) # 1100 + 1 = 1101
# 运行结果:-13 ,对应的二进制码:-1101
位移运算符
指定二进制码向左边或右边移动若干位
-
<<按位左移运算符,二进制码向左移动 N 位,左移多少位右边就补多少个0
# 按位左移
a = 12 # 12,对应的二进制码:1100
print( a << 3 )
# 运行结果:96,对应的二进制码:1100000
-
>>按位右移运算符,二进制码向右移动 N 位,右边溢出丢弃,右移多少位左边就补多少个0
# 按位右移
a = 12 # 12,对应的二进制码:1100
print( a >> 1 )
# 运行结果:6 ,对应的二进制码:110