说明:所有的位运算,都是基于二进制数据进行的,所以进行位运算前,先把数据转化成二进制数,再做运算,在转化为对应的进制
1、左移(<< )
补充: i<<y,含义将i左移y位
x = 8 # 二进制为 0000 1000
m = x << 3 # 左移3位,右边补零 0100 0000
print(m)
运算结果:m = 64
2、 左移后赋值(<<=)
x = 8 # 二进制为 0000 1000
x <<= 3 # 左移3位,右边补零 0100 0000
print(x)
运算结果:x = 64
3、右移(>>)
x = 8 # 二进制为 0000 1000
m = x >> 3 # 右移3位,左边补零 0000 0001
print(m)
运算结果:m = 1
4、右移后赋值(<<=)
x = 8 # 二进制为 0000 1000
x >>= 3 # 右移3位,左边补零 0000 0001
print(x)
运算结果:x = 1
5、按位或后赋值(|=)
补充或运算:全0为0,其余为1
x = 8 # 二进制为 0000 1000
x |= 3 # x与3按位或,右边补零 0000 1011
print(x)
运算结果:x = 11
6、按位与后赋值(&=)
补充与运算:全1为1,其余为0
x = 9 # 二进制为 0000 1001
x &= 3 # x与3按位或,右边补零 0000 0001
print(x)
运算结果:x = 1