【问题标题】:What does << represent in python?<<在python中代表什么?
【发布时间】:2012-08-14 19:51:30
【问题描述】:

Python 说

1 << 16 = 65536

&lt;&lt; 在 Python 中执行什么操作?

【问题讨论】:

标签: python syntax


【解决方案1】:

它是 Python 的左移运算符。 顾名思义,左移操作将位向左移动。

假设你有 2 的二进制表示是 0010。 所以 2&lt;&lt;2 的意思是将位向左移动两次:

0010 -> 0100 -> 1000

1000 是 8 的二进制表示。在数学上,左移与将数字乘以 2 的幂相同:a&lt;&lt;b == a*2^b,但由于仅通过移位完成运算,因此比乘法要快得多。

【讨论】:

  • 您能否评论一下在可能的情况下用位移代替幂运算是否是个好主意?
  • @Genre 这是个好主意。位移通常是一条汇编指令,而取幂可能需要几条。好的库和编译器可能会尝试针对基数为 2 次方的情况进行优化。一个缺点是代码变得不那么可读(1
【解决方案2】:

这是left shift operator

1&lt;&lt;16 表示 1 左移 16 位。

【讨论】:

    【解决方案3】:

    &lt;&lt; 是 Python 中的左移运算符。请查看documentation 了解更多详情。

    【讨论】:

      【解决方案4】:

      另一种思考方式是 1 乘以 2^16。

      所以每当你看到 x

      x * 2^y

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-02
        • 2018-07-07
        • 2013-04-14
        • 2011-04-11
        相关资源
        最近更新 更多