跳转至

lowbit

lowbit 可以输出最后一个 1 构成的数。

原理是:00101000 取反:11010111 加 1:11011000 与原数按位与:00001000

输入 0b00101000 输出 0b00001000

int lowbit(int x)
{
    return (~x + 1) & x;
}