一、小试牛刀

二、细说那些让人又爱又恨的位运算符

三、实例
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a & b # 12 = 0000 1100
print("1 - c 的值为:", c)
c = a | b # 61 = 0011 1101
print("2 - c 的值为:", c)
c = a ^ b # 49 = 0011 0001
print("3 - c 的值为:", c)
c = ~a # -61 = 1100 0011
print("4 - c 的值为:", c)
c = a << 2 # 240 = 1111 0000
print("5 - c 的值为:", c)
c = a >> 2 # 15 = 0000 1111
print("6 - c 的值为:", c)
输出结果:
1 - c 的值为: 12
2 - c 的值为: 61
3 - c 的值为: 49
4 - c 的值为: -61
5 - c 的值为: 240
6 - c 的值为: 15
四、场景应用
1、判断奇偶性
# 判断奇偶性
n = int(input('请输入一个数:'))
if n & 1 == 0:
print(n, '是偶数')
else:
print(n, '是奇数')
输出结果:
请输入一个数:12
12 是偶数
五、选择题解析
对进制转换不熟悉,可以看笔者的一篇文章《python二级--一篇搞懂进制转换》
解析:
20对应的二进制0b10100
3对应的二进制0b00011
7对应的二进制0b00111
20 | 3
===>
0b10111转换为10进制为23
==================
20 & 7
===>
0b00100转换为10进制为4
六、赠语
三十功名尘与土,八千里路云和月。
网友评论