应如何解释以下代码?
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
答案 0 :(得分:0)
<<
是bitwise operator:
x << y
以左移y位的方式返回x(右侧的新位为零)。这和 将x乘以2 ** y。
示例
x << y
对应于x*(2**y)
。
如果x=3
和y=4
,则x<<y
是3*(2**4)=3*16=48
。
在您的情况下,由于x
是1
,因此内部for循环在该部分代码中考虑2的幂。