【问题标题】:Interpret << in Python [duplicate]在 Python 中解释 << [重复]
【发布时间】:2019-09-18 12:10:36
【问题描述】:

下面的代码应该如何解释?

s = "";
my_arr = [1, 2, .....]
for i in range(len(my_arr)):
    for j in range(len(my_arr)):
        if (i & (1<<j)) != 0:
            s += str(my_arr[j])

我无法理解以下语法:

if (i & (1<<j))!=0

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    &lt;&lt;bitwise operator

    x

    返回 x,位向左移动 y 位(右侧的新位为零)。这与 将 x 乘以 2**y。

    示例

    x &lt;&lt; y 对应于x*(2**y)

    如果x=3y=4x&lt;&lt;y 就是3*(2**4)=3*16=48

    在您的情况下,由于 x1,因此内部 for 循环会在该部分代码中考虑 2 的幂。

    【讨论】:

    • 所以在这种情况下,结果将是: 1*(2y) 即 2y
    猜你喜欢
    • 1970-01-01
    • 2018-09-28
    • 1970-01-01
    • 2019-05-25
    • 1970-01-01
    • 2021-11-30
    • 2013-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多