python二级--让人又爱又恨的位运算符

2019-08-01  本文已影响0人  young十三

一、小试牛刀

1.jpg

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

图1.png

三、实例

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

六、赠语

三十功名尘与土,八千里路云和月。

上一篇 下一篇

猜你喜欢

热点阅读