用Python解释<<

时间:2019-04-29 20:49:06

标签: python python-3.x

应如何解释以下代码?

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

1 个答案:

答案 0 :(得分:0)

<<bitwise operator

  

x << y

     

以左移y位的方式返回x(右侧的新位为零)。这和   将x乘以2 ** y。

示例

x << y对应于x*(2**y)

如果x=3y=4,则x<<y3*(2**4)=3*16=48

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