当前位置: 首页 > news >正文

位运算基础与进阶

一、 核心操作符概览

操作符名称逻辑规则常用口诀
&按位与同 1 为 1,否则为 0有 0 则 0
|按位或有 1 为 1,全 0 为 0有 1 则 1
^按位异或不同为 1,相同为 0相同为 0,不同为 1
~按位取反0 变 1,1 变 0全部翻转
<<左移整体左移,右边补 0相当于乘以 $2^{n}$
>>右移整体右移,左边补符号位相当于除以 $2^{n}$

二、 常用位运算技巧(必背)

1. 基础置位操作(针对第i位)

假设变量为n,位数从 0 开始。

  • 获取第i位的值(n >> i) & 1(结果为 0 或 1)。

  • 将第i位置 1n |= (1 << i)

  • 将第i位清 0n &= ~(1 << i)

  • 翻转第in ^= (1 << i)

2. 奇偶性与整除判断

  • 判断奇偶n & 1

    • 结果为1是奇数,为0是偶数(比n % 2快)。

  • 判断是否是 2 的幂次n > 0 && (n & (n - 1)) == 0

    • 原理:2 的幂次二进制只有一个 1,n-1会让该位变 0 且低位全变 1。

3. 交换两个数(不使用中间变量)

a ^= b; b ^= a; a ^= b;
  • 注意:如果ab指向同一个内存地址(即i == j),此方法会让变量变为 0。

4. 获取最低位的 1(Lowbit)

  • 公式n & -n

    • 应用:这是树状数组(Binary Indexed Tree)的核心。

    • 原理:负数在计算机中以补码存储(反码 + 1),相与后只保留最右边的 1。


三、 进阶:状态压缩(State Compression)

在解决动态规划(DP)或搜索问题时,常用一个intlong long来表示一组状态。

  • 全集(1 << n) - 1(表示 $n$ 个位置全是 1)。

  • 遍历所有子集

    for (int i = 0; i < (1 << n); ++i) { // i 就是一种状态,通过 (i >> j) & 1 判断第 j 个元素是否存在 }

在调试时,利用<bitset>观察变化是最直观的:

#include <bitset> #include <iostream> void debug(int n) { std::cout << std::bitset<8>(n) << std::endl; // 查看低8位 }
http://www.jsqmd.com/news/712492/

相关文章:

  • 五国朋友齐聚这里周五静安英语角
  • 国产替代崛起,白酒崩!
  • 临时停车系统厂家深度测评:全场景适配运维实力综合解析
  • egergergeeert企业落地实践:用低显存模式支撑日常插画草图迭代需求
  • 笔记软件换了一个又一个还是不满意?Trilium用下来解决了我的知识管理焦虑
  • DeepSeek V4 突然发布,DeepSeek-V4 技术报告深度解读
  • WeDLM-7B-Base镜像免配置:预置webui.py+supervisor.conf开箱即用
  • Rust生命周期:杜绝悬垂指针的终极指南
  • C#怎么设置JWT身份认证_C#如何生成并验证Token令牌【实战】
  • 前端微前端:Webpack 5 Module Federation 深度解析
  • 人力资源管理——解读全面掌握OKR:目标设定与持续绩效管理的实践指南【附全文阅读】——文末附下载链接
  • HTTP (XSS前简单了解)
  • 油价高企或令日元持续疲软,干预效果可能有限
  • 【Docker AI Toolkit 2026终极实战指南】:5大生产级AI工作流一键容器化,附GPT-4o+Llama-3本地部署完整脚本
  • LM文生图llm标准制定:输出图像EXIF元数据规范与溯源机制
  • 运维实战:监控与维护生产环境的DeOldify模型服务
  • CSS 定义的实例化演示
  • Dev Containers 调试器连接超时?不是网络问题!源码级定位 debug adapter 协议握手失败的 2 个 TLS 握手阻塞点与 1 个 WebSocket 缓冲区溢出漏洞
  • 人工智能之提示词工程 第一章 提示工程基础认知
  • 大语言模型推理一致性与准确性研究:方法与发现
  • Z-Image-Turbo-辉夜巫女镜像免配置:预装Xinference+Gradio+LoRA权重,开箱即用
  • MCP for Unity:用AI助手自动化Unity编辑器操作,提升开发效率
  • Janus-Pro-7B嵌入式部署:STM32单片机上的轻量化推理
  • 丽江游玩不知咋安排?这些靠谱地陪平台为你开启精彩旅程!
  • Qt6 编译 mysql 驱动
  • 量子最优控制与Λ型三能级系统的GRAPE算法实现
  • 千问3.5-9B MultiSim电路分析辅助:从自然语言描述到仿真参数设置
  • 前端 PWA:Service Worker 深度解析
  • 2026年附近UPS电源租赁厂家排行:附近发电机租赁公司、静音发电机组租赁、ups不间断电源租赁、ups电源租赁厂家选择指南 - 优质品牌商家
  • 2026年4月深圳除甲醛公司推荐:五家口碑服务评测对比领先新家入住异味刺鼻 - 品牌推荐