这两种算法如何正确理解,除了死记硬背

这两种算法如何理解

img


代码:

int lowbit(int x)
{
    return x&(-x);
}

int lowbit(int x)
{
    return x&(x^(x-1));
}

参考GPT回答:

img

1、使用按位与运算符(&)和取反运算符(-)来计算lowbit
2、使用按位与运算符(&)和异或运算符(^)来计算lowbit