何时使用按位与运算符 (&)?
When to use the bitwise and operator (&)?
我理解按位与运算符 (&
) 相当于两个位值的乘积。我什么时候使用它?
也请帮助我理解 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,换句话说,如果它是奇数(here 二进制的一些解释)
我理解按位与运算符 (&
) 相当于两个位值的乘积。我什么时候使用它?
也请帮助我理解 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,换句话说,如果它是奇数(here 二进制的一些解释)