lowbit(x)是x的二进制表达式中最低位的1所对应的值(位置)。 比如,6的二进制是110,所以lowbit(6)=2。 最近回头看树状数组,发现关于lowbit()函数,目前有两种算法。 第一种是比较常见的,也是我一直在用的: int lowbit(int x) { return x&(-x); } 最近发现了另一种算法,如下所示: int lowbit(int x) { return x&(x^(x-1)); }