作者:曾巧红-------- | 来源:互联网 | 2022-12-07 15:56
我遇到过这样一个功能:
import math
import random
def low_zeros(value):
for i in xrange(1, 32):
if value >> i <
我用谷歌搜索,但没有找到任何有用的材料 value >> i <
1> Adam Smith..:
它正在检查有多少右侧位设置为零.
>>
向右移位,然后<<
向左移位相同数量的位移.考虑:
0b1000 >> 3 <<3
第一班将会做0b1000 -> 0b0001
.第二个会做0b0001 -> 0b1000
.这仍然与原版相同,所以我们已经确定了.
现在让我们看看
0b1000 >> 4 <<4
第一个班次将会这样做,0b1000 -> 0b0000
因为它将一个班次从数字的右侧移开.第二个班次将尝试向后移动,但没有任何改变(0 <对于任何自然数n).该函数用于比较0 != 0b1000
,当然也会中断for
块的执行.
然后函数返回4-1
,即3
数字右侧有多少个零.