最近在一个算法题中看到了一种新奇的用法,即X & -X,下面是对这一写法的分析:
众所周知,倘若X已知,则-X应该在计算机中表示为 X按位取反再加上1,即有:
X & -X = X & (~X +1)
当一个偶数与它的负值相与时, 结果是能被这个偶数整除的最大的2的幂
如果是x是奇数, 那x & -x 的结果一定是1
最近在一个算法题中看到了一种新奇的用法,即X & -X,下面是对这一写法的分析:
众所周知,倘若X已知,则-X应该在计算机中表示为 X按位取反再加上1,即有:
X & -X = X & (~X +1)
当一个偶数与它的负值相与时, 结果是能被这个偶数整除的最大的2的幂
如果是x是奇数, 那x & -x 的结果一定是1