我喜欢“n<< 1 == n * 2和n>> 1 == n / 2”的工作方式,但我无法通过搜索引擎得到答案。
答案 0 :(得分:4)
诚实的答案是,您需要一些 apriori 知道<<
和>>
运营商被称为使用Google进行有效搜索的内容。
一个人为的答案是Google搜索python "<<" ">>" operator
之类的内容。 Google搜索字词中的引号可确保所引用的字符串显示在每次匹配中。
第一个链接是"9.9 operator -- Standard operators as functions"。如果您搜索'<<'
的页面,最终会找到
Left Shift a << b lshift(a, b)
Right Shift a >> b rshift(a, b)
引导您(通过搜索lshift
)到定义(在同一页面上):
operator.lshift(a, b)
operator.__lshift__(a, b)
Return a shifted left by b.
然而,这也可能不那么清楚。这意味着a
的二进制表示被移位到左b
个位置并返回结果值。 (>>
,rshift运算符的工作方式相同,只是向右移位。)
答案 1 :(得分:1)
他们看起来有点转移给我。至少在C ++中,'n&gt;&gt; 1'表示将所有位(1和0)向右移位。即十进制6(二进制表示110)变为11(偏移0),即十进制3.即,如果n = 6,则n>&gt; 1 == n / 2将评估为真。
有关详细信息和更好的解释,请参阅http://en.wikipedia.org/wiki/Arithmetic_shift。