# python3小白课:位运算符 位运算符是用来直接处理数字的原始bit位,是把数字看作二进制来进行计算的。常用在图形、图像处理,文本加解密等领域。 > [!tip] > > 但在日常常见的编程中,实话说比较罕见,而且掌握起来也有一定的难度,掌握后如果不经常使用也容易忘。因此如果你没有对它的日常需要,可以不进行它的掌握,直接跳过本节即可。感兴趣的同学可以自行查阅网上的资料深入学习。 我们来看点简单的例子: 假如 a 为 60,b 为 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 | 我们来看一下验证的代码: ```python # 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) ```