如果n是个奇数 很明显这个式子之后就相当于把最低位的1去掉了,变成比它小了1的偶数
如果n是个偶数,n-1就是把n最后的那些0变成1了,把最后一个1变成0了,n&(n-1)就是把最后一个1变成了0了,后面都是0
所以n&(n-1)的用途怎么说都是把最后一个1抹去了,可以用来计算刚开始n有几个1,只要每次让n=n&(n-1),当n=0的时候结束
n&(n-1)到底是个啥
最新推荐文章于 2021-02-08 11:41:27 发布
如果n是个奇数 很明显这个式子之后就相当于把最低位的1去掉了,变成比它小了1的偶数
如果n是个偶数,n-1就是把n最后的那些0变成1了,把最后一个1变成0了,n&(n-1)就是把最后一个1变成了0了,后面都是0
所以n&(n-1)的用途怎么说都是把最后一个1抹去了,可以用来计算刚开始n有几个1,只要每次让n=n&(n-1),当n=0的时候结束