我理解按位与运算符(
&
)相当于两个位值的乘积。我什么时候用它?
我也很想了解
num&1
在下面的代码中做了什么:
def func(num):
n = 1 + func((3*num+1) if num&1 else (num>>1))
return n
正如评论中提到的,
num&1
是num
和1
之间的按位与。
由于二进制中的 1 是 ...000000001,当且仅当
num
的最低有效位是 1
,换句话说,如果它是奇数(这里对二进制的一些解释),AND 将得到 True