位运算 计算

符号 名称 运算规则 蓝桥杯常见应用
& 按位与 两位都为1时,结果为1 判断奇偶 (x & 1)、清零特定位、取模(对2的幂)
` ` 按位或 两位都为0时,结果为0,否则为1
^ 按位异或 两位相同为0,不同为1 查找单身数字不使用临时变量交换数值
~ 按位取反 0变1,1变0 配合&运算实现特定位清零 (x & ~(1 << k))
<< / >> 左移/右移 将所有位向左/右移动 快速进行乘/除2的幂运算、获取或设置特定位

核心技巧:竞赛中的杀手锏

  1. 异或 (^) 的神奇用法 :异或运算的核心性质是 x ^ x = 0x ^ 0 = x,由此衍生出几个竞赛中非常巧妙的用法。

    • "单身狗"问题:在一个数组中,除了一个元素出现奇数次外,其他元素均出现偶数次。将所有元素异或起来,最终结果就是那个"落单"的元素。

    • 交换两个数 :无需临时变量,利用异或的自反性,使用 a ^= b; b ^= a; a ^= b; 三步即可完成交换。

    • 快速判断两个数是否相等 :直接 (a ^ b) == 0

  2. "与"运算 (&) 的精妙用法

    • 判断奇偶(x & 1) == 1 为奇数,(x & 1) == 0 为偶数。

    • 判断2的幂次x > 0(x & (x - 1)) == 0,则 x 是2的幂次。

    • 统计二进制中1的个数 :通过 x = x & (x - 1) 循环,每执行一次就消除一个最低位的1,直到 x 变为0,循环次数即1的个数。

    • 计算 lowbitlowbit = x & -x 可以提取出 x 的二进制表示中最低位的1所代表的值。这是树状数组实现的基础,也是在状态压缩DP中枚举子集的关键。

相关推荐
数模竞赛Paid answer1 小时前
2026年中青杯数学建模A题数学建模论文智能评估系统与多智能体优化方法求解全过程论文及程序
算法·数学建模·中青杯
银-豆豆1 小时前
数据结构与算法-动态规划、回溯与贪心
算法·动态规划
想吃火锅10053 小时前
【leetcode】200. 岛屿数量
算法·leetcode·职场和发展
Nil2083 小时前
leetcode 54螺旋矩阵
算法·leetcode·矩阵
依然鸣4 小时前
PTA团体程序设计天梯赛L1真题讲解L1-077-080
开发语言·c++·算法·深度优先·pat考试·图论
qeen877 小时前
【数据结构】自平衡二叉搜索树各种旋转算法原理解析及AVL树的C++实现
数据结构·c++·算法
lucas_AI7 小时前
1.2B 小模型赢过 235B 大模型:NaviDC-OCR 把文档解析卷明白了
人工智能·深度学习·算法
冻柠檬飞冰走茶8 小时前
PTA基础编程题目集 7-35有理数均值(C++语言实现)
开发语言·数据结构·c++·算法·均值算法
民乐团扒谱机8 小时前
【微实验】倒谱算法(Cepstrum)深度解析:原理、数学推导与代码实现
人工智能·算法·语音识别
Nil2089 小时前
leetcode 189轮转数组
数据结构·算法·leetcode