
上QQ阅读APP看书,第一时间看更新
1.5.3 位运算符

1-10 位运算符
位运算按照数据在内存中的二进制位(bit)进行操作,它一般用于算法设计、驱动、图像处理、单片机等底层开发。位运算符只能用来操作整数类型,它按照整数在内存中的二进制形式进行计算。Python支持的位运算符如表1-8所示。
表1-8 位运算符及功能说明

位运算指令使用“0”“1”两个布尔操作数(bool)对位状态进行逻辑操作,逻辑操作的结果送入存储器Y中。表1-9到表1-12为对应的逻辑“与”“或”“异或”和“取反”运算。
表1-9 逻辑“与”运算

表1-10 逻辑“或”运算

表1-11 逻辑“异或”运算

表1-12 逻辑“取反”运算

左移运算符“<<”用来把操作数的各个二进制位全部左移若干位,高位丢弃,低位补0。
例如,9<<3可以转换为如下的运算:

右移运算符“>>”用来把操作数的各个二进制位全部右移若干位,低位丢弃,高位补0或1。如果数据的最高位是0,那么就补0;如果最高位是1,那么就补1。
例如,9>>3可以转换为如下的运算:

【例1-27】 位运算。

运算结果:

例中出现的-7,其二进制的写法是“各位取反,再加一”,即11111001。