位掩码的一些tip

发布时间:2026/5/31 1:07:10

位掩码的一些tip 我们把这三大位运算符、|、^的核心秘密总结成一句话、一张表格和一组“大招”。掌握了它们你就掌握了 C 语言底层操作的灵魂。1. 核心口诀一句话记住(按位与)全 1 才为 1 ——“用来裁剪和清零”。|(按位或)有 1 就为 1 ——“用来合并和置一”。^(按位异或)不同才为 1 ——“用来翻转和对消”。2. 行为对照表看透本质假设我们要对某个不知道的二进制位x进行操作运算符遇到 0 的效果遇到 1 的效果底层核心用途强行变成 0x 0 0保持原样x 1 x掩码裁剪只留下想要的位不想要的位全部抹黑变成 0。|保持原样x | 0 x强行变成 1x | 1 1状态开启把两组数据拼在一起或者强行把某一位变成 1。^保持原样x ^ 0 x强行取反 (0变1, 1变0)x ^ 1 ~x开关翻转无需用if-else直接让某一位在 0 和 1 之间来回切换。3. 三大运算符的“独门大招”的大招判断奇偶想知道一个变量n是奇数还是偶数不用算n % 2取余运算比较慢直接看二进制的最后一位Cif ((n 1) 0) { // 奇数最后一位必然是1偶数必然是0 // 是偶数 }|的大招多重开关合并权限管理在很多系统里用不同的位代表不同的权限。读权限0001写权限0010执行权限0100我想同时拥有“读”和“写”权限直接用|合并0001 | 0010 0011。^的大招消消乐找落单、不占内存交换变量相同的数字异或直接归零A ^ A 0。任何数和 0 异或还是它本身A ^ 0 A。利用这个特性可以在一个成双成对的数组里用一轮循环直接揪出唯一那个落单的数字。|

相关新闻