AI技术百科
tianjing2020
2021-12-26 10:03:21
2.3、Python位运算符的用法
位运算是对数据的二进制位进行操作,这是一种非常底层的操作,但是它的效率很高。
Python 支持常见的位运算,包括按位与、或、异或、取反和移位。本节只讲解与、或、异或和取反操作,将在《Python移位运算》继续讲解移位运算。
1. 按位与(&)
按位依次进行与操作。该操作需要两个操作数,返回值的每一位的值是两个操作数的对应位进行与操作的结果。该操作并不改变操作数自身,即进行该操作后,两个操作数的值不会发生改变。
与操作真值表如表1所示。
A | B | A&B |
---|---|---|
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 0 |
下面演示了与操作的情况:
>>> 1 & 2 # 两个操作数分别是1和2 0 # 高位分别是0和1,所以高位结果为0 # 低位分别是1和0,所以低位结果也为0 # 最后总的结果为0 >>> 6 & 12 # 6=0110B,12=1100B 4 # 从高到低,结果依次为0100B = 4
2. 按位或(|)
按位依次进行或操作。该操作需要两个操作数,返回值的每一位的值是两个操作数的对应位进行或操作的结果。该操作并不改变操作数自身,即进行该操作后,两个操作数的值不会发生改变。
或操作真值表如表2所示。
A | B | A|B |
---|---|---|
1 | 1 | 1 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
下面演示了或操作的情况:
>>> 1 | 2 # 两个操作数分别是1和2 3 # 高位分别是0和1,所以高位结果为1 # 低位分别是1和0,所以低位结果也为1 # 最后总的结果为11B=3 >>> 6 | 12 # 6=0110B,12=1100B 14 # 从高到低,结果依次为1110B = 14
3. 按位异或(^)
按位依次进行异或操作。该操作也需要两个操作数,返回值的每一位的值是两个操作数的对应位进行异或操作的结果。该操作并不改变操作数自身,即进行该操作后,两个操作数的值并不会发生改变。
异或操作真值表如表3所示。
A | B | A^B |
---|---|---|
1 | 1 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
下面演示了异或操作的情况:
>>> 1 ^ 2 # 两个操作数分别是1和2 3 # 高位分别是0和1,所以高位结果为1 # 低位分别是1和0,所以低位结果也为1 # 最后总的结果为11B=3 >>> 6 ^ 12 # 6=0110B,12=1100B 10 # 从高到低,结果依次为1010B = 10
4. 按位取反(~)
按位依次进行取反操作。该操作只需要一个操作数,返回值的每一位的值是操作数的对应位进行取反操作的结果。该操作并不改变操作数自身,即进行该操作后,原操作数的值并不会发生改变。
取反操作真值表如表4所示。
A | ~A |
---|---|
1 | 0 |
0 | 1 |
下面演示了取反操作的情况:
>>> ~100 + 1 # 我们知道一个数的相反数用补码表示的方法是 -100 # 按位取反然后+1 # 所以结果就是100的相反数为-100 >>> ~(-100) + 1 # 和上面的一样,就是求-100的相反数 100 # 所以结果为100
26
条内容
Python基本数据类型一共26个章节
本章将介绍 Python 内置的基本数据类型,包括整型、浮点数、字符串、布尔型、列表、元组、集合和字典等 Python 定义的基本数据类型,以及这些数据类型的运算操作。
我们知道,Python 是强类型语言,每个变量在某个时刻的类型是确定的。也就是说,Python 中任意一个存活的对象,其类型是唯一的。不同类型的对象有不同的属性,能完成不同的操作。
另外本章最后还会介绍变量、对象等概念。每个对象都有一个确定的类型,每个变量都指向某个特定的对象。
本章将介绍 Python 内置的基本数据类型,包括整型、浮点数、字符串、布尔型、列表、元组、集合和字典等 Python 定义的基本数据类型,以及这些数据类型的运算操作。
我们知道,Python 是强类型语言,每个变量在某个时刻的类型是确定的。也就是说,Python 中任意一个存活的对象,其类型是唯一的。不同类型的对象有不同的属性,能完成不同的操作。
另外本章最后还会介绍变量、对象等概念。每个对象都有一个确定的类型,每个变量都指向某个特定的对象。