问:解释下(n&(n-1))==0的意义?
答:A&B==0说明1所在的bit位置都是不相同的.
n和n-1的关系就是n的右起第一个1(假设是第i位)变成0,同时之后所有位都变成1.
这样n的低i位和n-1的低i位&肯定得到0
但是要保证总体&是0,那么高位(i位左边的所有位)就必须都是0.
因为如果有一个1,那么n和n-1的那一位都是1,&结果就不能保证是0了.
所以得到结论就是n只有一位是1(书中解答的是2的幂次)或者n=0.
n&(n-1)作用
最新推荐文章于 2023-03-05 15:09:20 发布