位运算符
支持的数据类型有数字;集合(Set)仅支持“&”(交集)“|”(并集)“^”(不同集),其他类型都不支持位运算。
按位运算符是把数字看作二进制来计算的。
位运算符作用于所有的位上,并且按位运算。
Python中按位运算法则如下(假设a=60,b=13):
操作符 | 描述 | 实例 |
---|---|---|
& | 按位与运算符,当且仅当两个操作数的某一位都非0时,该位的结果才为1。 | (A&B)得12,即0000 1100 |
| | 按位或运算符,只有两个操作数的某一位有一个非0时,该位的结果才为1。 | (A|B)得61,即0011 1101 |
^ | 按位异或运算符,两个操作符的某一位不相同时,该位的结果为1。 | (A^B)得49,即0011 0001 |
~ | 按位补运算符,翻转操作数的每一位。 | (~A)得-60,即1100 0011 |
<< | 按位左移运算符,左操作数按位左移右操作数指定的位数。 | A<<2得240,即1111 0000 |
>> | 按位右移运算符,左操作数的值按右操作数指定的位数右移。 | A>>2得15,即0000 1111 |
实例如下:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
# 位运算符
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=1111 0000
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)