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

位与运算

只有当除数是 2 的幂次方(如 2、4、8、16...)时,取模运算才可以转换为位运算。

	int b = 19;int a1 = b % 16;     // 传统取模运算int a2 = b & 15;     // 位运算替代取模printf("b = %d\n", b);printf("b %% 8 = %d\n", a1);  // 输出: 3printf("b & 7  = %d\n", a2);  // 输出: 3return 0;

为什么?

  • 数学原理
    当除数 n 是 2 的幂次方(如 n = 8)时,b % n 的结果仅由 b 的低 log₂(n) 位决定。例如:

    • b % 8 只需看 b 的低 3 位(因为 8 = 2³)。
    • b % 16 只需看 b 的低 4 位(因为 16 = 2⁴)。

    此时,b % n 等价于 b & (n-1),因为 n-1 的二进制恰好是低 log₂(n) 位全为 1,其余位为 0(如 7 的二进制是 011115 的二进制是 1111)。

相关文章:

  • windows版redis的使用
  • 用Array.from实现创建一个1-100的数组
  • element基于表头返回 merge: true 配置列合并
  • Mixup
  • LeetCode热题100--234.回文链表--简单
  • 院校机试刷题第二天:1479 01字符串、1701非素数个数
  • 部署GraphRAG配置Neo4j实现知识图谱可视化【踩坑经历】
  • 用git下载vcpkg时出现Connection was reset时的处理
  • Yolov8的详解与实战-深度学习目标检测
  • 在Spark搭建YARN
  • [:, :, 1]和[:, :, 0] 的区别; `prompt_vector` 和 `embedding_matrix`的作用
  • Pinecone 向量数据库的连接以及增删改查操作讲解
  • 51单片机——交通指示灯控制器设计
  • Tailwind CSS 实战教程:从入门到精通
  • (C语言)超市管理系统(测试2版)(指针)(数据结构)(清屏操作)
  • UI 原型设计:交互规则的三要素——重要性、原则与实践
  • 浅析 Golang 内存管理
  • K8S redis 部署
  • nvrtc环境依赖
  • 数据库常见故障排查
  • 证券日报:降准今日正式落地,年内或还有降准空间
  • 人民日报民生观:转人工客服,怎么这么难?
  • 车载抬头显示爆发在即?业内:凭借市场和产业链优势,国内供应商实现反超
  • 夜读|尊重生命的棱角
  • 在笔墨金石间,看胡问遂与梅舒适的艺术对话
  • 国家林草局原党组成员、副局长李春良接受审查调查