x&-x是什么意思?

时间:2019-07-12 12:19:37

标签: bit

我已经在许多c ++代码(例如fenwick tree)中看到使用x & -x。例如:

int sum(int idx) 
{
        int ret = 0;
        for (idx++; idx > 0; idx -= idx & -idx) // here!
            ret += bit[idx];

        return ret;
}

所以:

  • 这是什么意思,它将导致什么后果? (我可以在什么情况下使用它)
  • 为什么会这样以及如何发生?
  • 这是用哪种编程语言实现的?
  • 是否有任何情况会导致问题或无法正常工作?

0 个答案:

没有答案