AI技术百科
tianjing2020
2021-12-26 10:02:51
2.4、Python移位运算(左移和右移)
移位操作等效于乘以 2 或者除以 2,但是移位运算的效率更高,所以在乘以或者除以 2 的整数幂时使用移位操作可以提升代码的执行速度。
移位操作包括左移和右移两个操作:左移操作相当于得到原操作数除以2n,右移操作相当于得到原操作数乘以2n。这两个操作都不改变原操作数的值。
1. 左移操作(>>)
相当于得到原操作数除以2n,原操作数不发生变化。
>>> 2 >> 1 # 得到2左移一位的值 1 # 相当于是2/2 >>> 2 >> 2 # 得到2左移2位的值 0 # 相当于先左移一位得到1,结果1再除以2等于0
从前面的例子可以看出,每左移一位相当于是除以 2,即 a>>1 等效于 a/2。如果移动 n 位,则等效于连除以 n 个 2,即 a>>n 等效于 (((a>>1)>>1)...)>>1。
如果操作数是正数,那么对之不停进行左移一位操作,其最终结果一定可以得到 0。如果操作数是负数,对之不停进行左移一位操作,是否最后也一定能够得到 0 呢?来看下面的例子:
>>> -8>>1 # 移动一位,相当于是除以2 -4 # 得到-4 >>> -8>>2 # 移动2位,相当于是用结果-4再除以2 -2 >>> -8>>3 # 移动3位,相当于是用结果-2再除以2 -1 >>> -8>>4 # 移动4位,相当于是用结果-1再除以2 -1
我们发现,-1 左移一位还是 -1,所以负数不停左移最后会停留在 -1 而不是 0 上。
>>> -1>>100 # -1移动100位 -1 # 依然是-1
2. 右移操作(<<)
相当于得到原操作数乘以 2n,原操作数不发生变化。
>>> 3<<1 # 向右移动一位,相当于是乘以2 6 # 得到6 >>> -3 << 1 # 向右移动一位,相当于是乘以2 -6
26
条内容
Python基本数据类型一共26个章节
本章将介绍 Python 内置的基本数据类型,包括整型、浮点数、字符串、布尔型、列表、元组、集合和字典等 Python 定义的基本数据类型,以及这些数据类型的运算操作。
我们知道,Python 是强类型语言,每个变量在某个时刻的类型是确定的。也就是说,Python 中任意一个存活的对象,其类型是唯一的。不同类型的对象有不同的属性,能完成不同的操作。
另外本章最后还会介绍变量、对象等概念。每个对象都有一个确定的类型,每个变量都指向某个特定的对象。
本章将介绍 Python 内置的基本数据类型,包括整型、浮点数、字符串、布尔型、列表、元组、集合和字典等 Python 定义的基本数据类型,以及这些数据类型的运算操作。
我们知道,Python 是强类型语言,每个变量在某个时刻的类型是确定的。也就是说,Python 中任意一个存活的对象,其类型是唯一的。不同类型的对象有不同的属性,能完成不同的操作。
另外本章最后还会介绍变量、对象等概念。每个对象都有一个确定的类型,每个变量都指向某个特定的对象。