python - 用 Python 解释 <<
问题描述
下面的代码应该如何解释?
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
解决方案
<<
是位运算符:
x << y
返回 x ,其中位向左移动了 y 位(右侧的新位为零)。这与将 x 乘以 2**y 相同。
例子
x << y
对应x*(2**y)
。
如果x=3
和是。y=4
_x<<y
3*(2**4)=3*16=48
在您的情况下,因为x
is 1
,内部 for 循环在该部分代码中考虑 2 的幂。
推荐阅读
- cmake - 如何将文件(READ ...)添加为configure_file(...)的依赖项?
- r - 从 Google 自动提取纬度、经度和其他有关地点的信息
- java - 在 Heroku 成功部署后的应用程序错误
- c# - 暴露的可绑定属性未正确绑定
- javascript - 具有指定角色命令的 Discord.js 成员列表
- lua - 如何在触摸脚本上制作更改字符?
- javascript - 在 Chart.js 中,如何从堆积条形图中隐藏某些轴标签?
- ruby-on-rails - 如何验证连接表记录中的唯一性
- laravel - 关系在 Laravel 中不起作用(hasMany)
- c++ - 作为参数的函数是否必须按值传递?