|
|
1
60
那就是 bitwise left shift 操作员。
对于左移,该值有效地乘以2。例如,写作
它在内部真正做的是将值的所有实际位移到一个位置。所以如果你有12(十进制)的值,用二进制表示
|
|
2
131
当你写作时
你改变钻头组合
所以
真的是
对于5个项目的列表,
|
|
|
3
82
它被称为
演示
将一个位向左移动等于将一个位乘以两个。实际上,移动位比标准乘法更快。让我们来看一个演示此事实的示例: 假设我们有两种方法:
我们要像这样测试它们:
结果如下:
|
|
4
57
它是 bitwise shift-left it works by shifting digits of binary equivalent of number by the given(right hand side)numbers.
所以:
|
|
|
5
36
那就是 left bitshift 操作员。它按右操作数中指定的二进制位数将左操作数的位模式向左移动。
这在语义上等价于
|
|
|
6
23
循环的目的很可能在列表中的一组项的所有子集上生成或操作。循环体也很可能有一个很好的位操作(har-har),即另一个左移位和位和。(所以把它改写成使用pow是非常愚蠢的,我简直不敢相信有这么多人真的这么建议。) |
|
|
7
15
那是位移动。它基本上就是通过在右边加0来向左移动位。
|
|
|
8
12
除了Selman22的答案外,还有一些例子:
我列出一些值
诸如此类。 |
|
|
9
9
“位左移。”
|
|
|
10
8
它的(<<)是按位左移位运算符,它移动二进制对象的位值。左操作数指定要移位的值,右操作数指定值中要移位的位数。 在您的情况下,如果list.count的值为4,则循环将一直运行到i<(1<<4) 哪个是 十六 (00010000) 00000001<<4=00010000(16) |
|
|
11
7
这在许多答案中是隐含的,但从未直接说明… 对于左移一个二进制数的每个位置,都要使该数的原始值翻倍。 例如, 十进制5的二进制移位1是十进制10,或十进制5的两倍。 十进制5的二进制移位3是十进制40,或十进制5的3倍。 |
|
|
12
7
表达式
在这种情况下,它被用来执行2^n的快速整数计算,其中n是0到30。
一个很好的工具
在循环条件中使用math.pow进行评估(在我的系统中)比n=10的问题代码慢7倍,这是否重要取决于上下文。 在单独的变量中缓存“循环计数”会稍微加快速度,因为涉及列表长度的表达式不需要在每次迭代中重新计算。 |
|
|
13
6
以前的答案已经解释过了
什么
是的,但似乎没人猜到
为什么?
. 在我看来,这段代码的原因很可能是循环正在迭代一个列表中每个可能的成员组合——这是我能理解为什么要迭代最多2 ^ list.count的唯一原因。变量
|
|
|
14
5
我知道这个答案已经很好地解决了,但是我认为可视化可能会帮助一些人。
|
|
|
Luple · gles glsl逐位操作问题 8 年前 |
|
|
Dhiraj · Javascript-解析十六进制值 8 年前 |
|
|
limitless · 数据二进制表示的位运算 8 年前 |
|
|
Mr. Who · python 2.7上的and逻辑运算[重复] 8 年前 |
|
|
gnzg · 在本例中,为什么逐位运算符或截断值?[副本] 8 年前 |
|
|
Cash- · 用位运算符解密隐藏消息 8 年前 |