news 2026/5/31 1:07:00

位掩码的一些tip

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
位掩码的一些tip

我们把这三大位运算符(&|^)的核心秘密总结成一句话、一张表格和一组“大招”。

掌握了它们,你就掌握了 C 语言底层操作的灵魂。

1. 核心口诀(一句话记住)

  • &(按位与):全 1 才为 1 ——“用来裁剪和清零”

  • |(按位或):有 1 就为 1 ——“用来合并和置一”

  • ^(按位异或):不同才为 1 ——“用来翻转和对消”

2. 行为对照表(看透本质)

假设我们要对某个不知道的二进制位x进行操作:

运算符遇到 0 的效果遇到 1 的效果底层核心用途
&

强行变成 0

x & 0 == 0

保持原样

x & 1 == x

掩码裁剪:只留下想要的位,不想要的位全部抹黑(变成 0)。
|

保持原样

x | 0 == x

强行变成 1

x | 1 == 1

状态开启:把两组数据拼在一起,或者强行把某一位变成 1。
^

保持原样

x ^ 0 == x

强行取反 (0变1, 1变0)

x ^ 1 == ~x

开关翻转:无需用if-else,直接让某一位在 0 和 1 之间来回切换。

3. 三大运算符的“独门大招”

💡&的大招:判断奇偶

想知道一个变量n是奇数还是偶数,不用算n % 2(取余运算比较慢),直接看二进制的最后一位:

C

if ((n & 1) == 0) { // 奇数最后一位必然是1,偶数必然是0 // 是偶数 }

💡|的大招:多重开关合并(权限管理)

在很多系统里,用不同的位代表不同的权限。

  • 读权限:0001

  • 写权限:0010

  • 执行权限:0100

我想同时拥有“读”和“写”权限?直接用|合并:0001 | 0010 = 0011

💡^的大招:消消乐(找落单、不占内存交换变量)

  • 相同的数字异或直接归零:A ^ A = 0

  • 任何数和 0 异或还是它本身:A ^ 0 = A

  • 利用这个特性,可以在一个成双成对的数组里,用一轮循环直接揪出唯一那个落单的数字。

|

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/31 1:07:00

Iwara视频批量下载:5分钟掌握免费高效下载的终极指南

Iwara视频批量下载:5分钟掌握免费高效下载的终极指南 【免费下载链接】IwaraDownloadTool Iwara 下载工具 | Iwara Downloader 项目地址: https://gitcode.com/gh_mirrors/iw/IwaraDownloadTool 你是否曾在Iwara平台发现精彩视频却无法轻松保存?面…

作者头像 李华
网站建设 2026/5/31 1:01:22

Agent和传统大模型的区别以及目前的困境和解决

理解智能体(Agent)与以往大模型的区别,是把握当前人工智能发展方向的关键。以往的大模型更像一位博学但被动的专家——你提问,它回答。而智能体则是一位拥有同样知识,同时具备计划、行动、反思能力的自主员工。你给它一…

作者头像 李华
网站建设 2026/5/31 0:59:44

推荐系统实战避坑:你的nDCG计算代码可能忽略了这几个关键细节

推荐系统实战避坑:你的nDCG计算代码可能忽略了这几个关键细节 在推荐系统的评估体系中,nDCG(Normalized Discounted Cumulative Gain)因其对排序质量的敏感性,成为衡量推荐列表效果的核心指标之一。许多工程师和研究者…

作者头像 李华
网站建设 2026/5/31 0:57:02

朱光亚与一个民族最深沉的精神底色(潜龙在渊)

潜龙在渊:朱光亚与一个民族最深沉的精神底色2024年12月25日,北京西北郊的八宝山公墓,一场简朴而庄重的纪念活动正在举行。没有盛大的仪式,没有铺天盖地的报道,只有几束素白的菊花静静安放在骨灰安放处。墓碑上没有显赫…

作者头像 李华
网站建设 2026/5/31 0:54:11

AI驱动客户关系管理:从个性化推荐到情感联结的实践指南

1. 从交易到伙伴:AI如何重塑品牌与客户关系的底层逻辑十年前,品牌和客户的关系像一场精心策划的舞会,品牌是主导者,客户是跟随者。沟通是单向的广播,关系维护靠的是电话、邮件和偶尔的线下活动,效率低且难以…

作者头像 李华