位运算可视化

位运算把布尔规则应用于多个对齐的位列,可以一次处理八位、三十二位或六十四位。符号虽短,位位置和字宽却需要记清。画面固定对齐每个位,并显示字边界与被丢弃的位。

位运算基础介绍 AND、OR、XOR、NOT 和移位;位运算技巧使用这些规则构建掩码、统计置位数、判断 2 的幂。

掩码可读取权限或功能标记而不影响其他位。每次清除最低的 1,可以遍历稀疏标记而不扫描所有位置;popcount(a ^ b) 统计两个值的不同位。带正数检查的 2 的幂判断,可验证容量或对齐值是否恰有一位置位。

课程比较

课程核心问题主要操作观察结果
位运算基础每个运算符做什么AND、OR、XOR、NOT、<<、>>每列的输出或移位后的位
位运算技巧运算符能维持什么规律掩码、x & (x - 1)指定位置或最低的置位被清除

基础课逐列读真值表,技巧课读整体结构。同一个 AND 可以成为测试、清除工具,以及用循环次数统计 1 的方法。

建议学习顺序

先学位运算基础,关注位标签而非十进制结果。AND 保留双方共有的 1,OR 接受任一方的 1,XOR 标记不同,移位改变位置。固定 8 位边界也说明为什么原始 NOT 结果需要掩码限制。

再学位运算技巧。先建立独热掩码,用它测试、设置和清除一个位。随后观察 x - 1 的借位:最低的 1 变为 0,下方后缀变为 1,再用 AND 恰好清掉一个置位。默认结尾比较 40、32、0,分别展示普通否定、2 的幂,以及零值陷阱。

观察重点

  • 区分位索引与掩码值。位 2 是位置,00000100 是选中它的掩码。
  • 区分幂等与可逆。用 OR 设置两次与一次相同;XOR 翻转两次可恢复;清除会丢失原信息。
  • 按状态变化计数。Kernighan 循环的轮数等于 1 的数量,不是字宽。
  • 检查技巧的前提。2 的幂必须为正且恰有一个 1;零也满足 x & (x - 1) 为零,因此单靠该式不够。

全部位运算可视化课程

选择课程,改变数值或目标位,逐步对照 Python 或 JavaScript 高亮代码检查轨迹。