在Python中,"<< "代表什么?

6

Python 说

1 << 16 = 65536

在Python中,<< 运算符执行左移操作。

3
http://wiki.python.org/moin/BitwiseOperators - jeremy
1
算术移位 - Buddy
1
请查看此链接:http://docs.python.org/reference/expressions.html?highlight=bit%20shift#shifting-operations。 - user647772
4个回答

12

它是Python中的左移位运算符。

左移操作会将位向左移动,就如其名称所示。

假设你有一个2,其二进制表示为0010。因此 2<<2 表示将位向左移动两次:

0010 -> 0100 -> 1000

1000是8的二进制表示。从数学上讲,左移相当于将一个数字乘以2的幂:a<<b == a*2^b,但由于该操作仅通过移位来完成,因此比执行乘法要快得多。


请问您能否评论一下,是否将指数运算尽可能替换为位移操作是一个好主意? - Grady S
@Genre 这是一个好主意。位移通常只需要一条汇编指令,而指数运算可能需要多个。好的库和编译器可以尝试针对基数为2的幂次方进行优化。缺点是代码变得不太可读(1<<16不如2^16可读)。因此,您需要评估节省的代价是否弥补了可读性的损失。 - André Oriani

9
这是“左移运算符”。 1<<16表示将1向左移动16位。

5

<< 是 Python 中的左移运算符。请查看文档以获取更多详细信息。


3
另一种思考方式是1乘以2的16次方。因此,无论何时看到x << y,将其解释为:x乘以2的y次方。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接