跳到正文
信奥逐课

第 221 课

lowbit

🔵 基础 约 7 分钟

一句话理解

lowbit(x) 是 x 的最低位 1 以及它右边的 0。

为什么要学

树状数组的引擎,也用来枚举子集。

讲解

lowbit(x)=x&-x。12 是 1100₂,lowbit 是 4。

每次 x-=lowbit(x) 可以枚举所有 1 位。

例子

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

利用补码:-x 是取反加一,与完只留下最低 1。

常见错误

练习 做完再看下一课

lowbit(x) 的常用写法是 x & ____

在线练习 C++ 在浏览器里编译,代码不会上传

Ctrl / ⌘ + Enter 运行 · Tab 缩进

输出
 

进度保存在本机浏览器里。

左右方向键也可翻课