位操作介绍
位运算的运算速度通常与加法相同快于乘法运算,因为使用资源更小所以通常功耗更小。
有四种基本的位运算操作:
- 与 &
都为1则结果为1,否则为0
- 或 |
只要一个为1则结果为1,否则为0
- 非 ~
相同则为0,不同则为1
- 异或 ^
等于:先或运算再非运算,有1则为0,否则为1
以及位移操作:
- 右位移 >>
- 左位移 <<
具体应用
奇偶判断
对数值进行与1操作,结果为0是偶数,结果为1为奇数
number & 1
示例:
# 其中 i&1 返回数值 0 或 1
for i in range(5):
if i & 1:
print(f"{i} : 是基数")
else:
print(f"{i} : 是偶数")
左移乘2
<< 为二进制位向左位移操作,左位移1位相当于乘以2的操作。
number << 1
示例:
a = 23
print("a * 2 = %s" % (a << 1))
右移除2
>> 为二进制位向右位移操作,右位移1位相当于除以2的操作,且不会产生余数。
number >> 1
示例:
a = 23
print("a * 2 = %s" % (a >> 1))