约 8 分钟
借助补码,lowbit(x)=x&(-x)。因为 -x 是 x 按位取反再加一,只有最低位的 1 处能对齐保留。int lowbit(int x){ return x & (-x); }。
lowbit(x)=x&(-x)
-x
int lowbit(int x){ return x & (-x); }
手算 6 & (-6)(按 4 位补码)。
6 & (-6)
登录 后可看答案