引言
本文主要介绍位运算符,实际上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