最近看到一行代码,X&=X-1,不是很理解这个代码用来干嘛的,自己用编辑器运行了一下
int a = 4;
a &=( a - 1);
输出 :a=0。
如果是:
int a = 3;
a &=( a - 1);
输出:a=2。
也就是说,X&=X-1,可以看为X=X&(X-1),这时候的X值是将X和X-1进行了二进制的与操作之后得出来的值。