python3xiaobaike_2020/chapter2/2-16 python3小白课:位运算符.md
2025-04-20 23:22:14 +08:00

2.2 KiB
Raw Blame History

python3小白课位运算符

位运算符是用来直接处理数字的原始bit位是把数字看作二进制来进行计算的。常用在图形、图像处理文本加解密等领域。

Tip

但在日常常见的编程中,实话说比较罕见,而且掌握起来也有一定的难度,掌握后如果不经常使用也容易忘。因此如果你没有对它的日常需要,可以不进行它的掌握,直接跳过本节即可。感兴趣的同学可以自行查阅网上的资料深入学习。

我们来看点简单的例子:

假如 a 为 60b 为 13。则二进制格式为

a = 0011 1100

b = 0000 1101

我们有如下的运算符可供选择:

运算符 描述 实例
& 按位与运算符参与运算的两个值如果两个相应位都为1则该位的结果为1否则为0 (a & b) 输出结果 12 ,二进制解释: 0000 1100
| 按位或运算符只要对应的两个二进位有一个为1时结果位就为1。 (a | b) 输出结果 61 ,二进制解释: 0011 1101
^ 按位异或运算符当两对应的二进位相异时结果为1 (a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1 (~a ) 输出结果 -61 ,二进制解释: 1100 0011
<< 左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数高位丢弃低位补0。 a << 2 输出结果 240 ,二进制解释: 1111 0000
>> 右移动运算符:把**>>左边的运算数的各二进位全部右移若干位,>>** 右边的数字指定了移动的位数 a >> 2 输出结果 15 ,二进制解释: 0000 1111

我们来看一下验证的代码:

# coding:utf-8
a = 0b00111100   # 即a = 60
b = 0b00001101   # 即b = 13
print(a, b)
print(a & b)
print(a | b)
print(a ^ b)
print(~a)
print(a << 2)
print(a >> 2)