lowbit 求二进制最后一位为1的数,x & -x
-x为x的反码(二进制的所有位都与x的不同)+1,例如一个二进制数1011.....100
反码为0100......011
加1后为0100.......100
即-x最后一位1之前的所有数都与x的反码相同,与x进行&操作后为零,只有最后一位的1与x&之后为1,后面的数都为零,即-x&x得到的结果为0000......100,十进制下为4
lowbit是树状数组的一个方法
lowbit
最新推荐文章于 2024-11-03 21:27:26 发布