Python 位运算按照数据在内存中的二进制位(Bit)进行操作,Python 位运算符只能用来操作整数类型int,它按照整数在内存中的二进制形式进行计算。Python 支持的位运算符如表所示。
位运算符 | 说明 | 使用形式 | 举 例 |
& | 按位与 | a & b | 4 & 5 |
| | 按位或 | a | b | 4 | 5 |
^ | 按位异或 | a ^ b | 4 ^ 5 |
~ | 按位取反 | ~a | ~4 |
<< | 按位左移 | a << b | 4 << 2,表示整数 4 按位左移 2 位 |
|按位右移| a >> b |4 >> 2,表示整数 4 按位右移 2 位
获取python中整数的二进制表示:bin()
函数
按位与&
- 按位与运算符运算规则:0&0=0&1=1&0=0,1&1=1,即有0即0.
按位与在算法中的应用主要有:
- 判断整数的奇偶, 普遍的方法是取余操作,
n%2==0
偶数,采用位运算可以提高程序的运行效率,n&1==1
奇数n&1==0
偶数 - 幂运算
- 判断最低位的二进制为0 or 1.
按位或 |
- 按位或运算符的运算规则:0|1=1|0=1|1=1,0|0=0,有1即1
相关代码题:
按位异^
- 位异或运算符运算规则:0 ^ 0=1 ^ 1=0,0 ^ 1=1 ^ 0=1
异或运算:相同元素异或为0
相关代码题:
找出成对元素中单个出现的元素
按位取反 ~
- 位求反运算符运算规则:~ 0=1,~ 1=0,对于整数x有**~x=-(x+1)**
相关代码:
左移位运算符 << ,<<=
- 左移位运算符运算规则:原来的所有位左移,最低位补0,移多少位相当于乘以2的多少次方。
对于左移 << 、右移 >>:对原始值不做改变,只返回位移操作之后的值;
对于左移 <<= 、右移 >>=:会修改原始值,不返回任何值(或者说,返回 None )。
右移位运算符>>, >>=
- 右移位运算符运算规则:原来的所有位右移,最低位丢弃,最高位使用符号位填充,相当于整除2 的移位次方
相关代码题:
Leetcode: 868 二进制间距