news 2026/6/10 15:25:54

一轮复习——E.位运算模型总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一轮复习——E.位运算模型总结

常用操作汇总

方法篇

①n的二进制最高位前0的个数:Integer.numberOfLeadingZeros(int n)

衍生用法:

1.计算n的二进制位数:32-Integer.numberOfLeadingZeros(int n)

例题👇

E.位运算-基础——3370. 仅含置位位的最小整数

E.位运算-基础——1342. 将数字变成 0 的操作次数

E.位运算-基础——476. 数字的补数+1009. 十进制整数的反码

E.位运算-基础——2917. 找出数组中的 K-or 值

E.位运算-基础——342. 4的幂

2.得到n的有效二进制位全为1的数:

E.位运算-基础——3370. 仅含置位位的最小整数(解析相当全面)

②n的二进制中最高位的1所对应的十进制数值:Integer.highestOneBit(int n)

例题👇

E.位运算-基础——3370. 仅含置位位的最小整数

E.位运算-基础——476. 数字的补数+1009. 十进制整数的反码

衍生用法:

得到n的有效二进制位全为1的数:

E.位运算-基础——3370. 仅含置位位的最小整数(解析相当全面)

③计算二进制中1的个数:Integer.bitCount(int n)

例题👇

E.位运算-基础——191. 位1的个数

E.位运算-基础——338. 比特位计数

A.每日一题——231. 2 的幂

A.每日一题——1356. 根据数字二进制下 1 的数目排序

E.位运算-基础——3226. 使两个整数相等的位更改次数

E.位运算-基础——461. 汉明距离+2220. 转换数字的最少位翻转次数

E.位运算-基础——1342. 将数字变成 0 的操作次数

A.每日一题——762. 二进制表示中质数个计算置位

A.每日一题——401. 二进制手表

D.二分查找-二分答案-求最大——3143. 正方形中的最多点数

第十六届蓝桥杯大赛软件赛省赛Java 大学 A 组Q3

E.位运算-基础——2595. 奇偶位数

E.位运算-异或:异或消消乐入门(1720题+2433题+2683题+2997题)中的2997题

E.位运算-异或:2429. 最小异或

④16位全1的二进制数:0xffff

例题👇

A.每日一题——1356. 根据数字二进制下 1 的数目排序

⑤32位全1的二进制数:-1

例题👇

E.位运算-与或:2871题+2401题中的2871题

0x5555 5555=0101 0101 0101 0101 0101 0101 0101 0101(共32位)

例题👇

E.位运算-基础——342. 4的幂

E.位运算-基础——2595. 奇偶位数

A.每日一题——1758. 生成交替二进制字符串的最少操作数

衍生用法

0xAAAA AAAA=1010 1010 1010 1010 1010 1010 1010 1010(共32位)

A.每日一题——1758. 生成交替二进制字符串的最少操作数

将一个int数值的32位二进制位完全反转,返回反转后的新int:Ineteger.reverse(int n)

例题👇

A.每日一题——190. 颠倒二进制位

String转int:Integer.parseInt(String s)

举例:Integer.parseInt("101") // "101"→101

例题👇

A.每日一题——3433. 统计用户被提及情况

B.双指针——2562. 找出数组的串联值

P8598 [蓝桥杯 2013 省 AB] 错误票据

衍生用法

二进制String转int:Integer.parseInt(String s,2)

举例:Integer.parseInt("101",2) // "101"→5

例题👇

A.每日一题——1404. 将二进制表示减到 1 的步骤数

A.每日一题——1022. 从根到叶的二进制数之和

A.每日一题——1758. 生成交替二进制字符串的最少操作数

A.每日一题——1980. 找出不同的二进制字符串

String转Integer:Integer.valueOf(String s)

例题👇

B.双指针——2562. 找出数组的串联值

第 171 场双周赛Q1——3765. 完全质数

第 481 场周赛Q1——100942. 整数的镜像距离

任意类型转String:String.valueOf()

例题👇

B.双指针——2562. 找出数组的串联值

第 171 场双周赛Q1——3765. 完全质数

第 481 场周赛Q1——100942. 整数的镜像距离

⑪int转二进制字符串:Integer.toBinaryString(int n) 结果无前置0

举例:Integer.toBinaryString(5); // 5 → "101"

举例:Integer.toBinaryString(3); // 5 → "1"

例题👇

A.每日一题——868. 二进制间距

E.位运算-基础——3211. 生成不含相邻零的二进制字符串

A.每日一题——1980. 找出不同的二进制字符串

直接生成n个0(用于补充前置位0):"0".repeat(int n)

例题👇

A.每日一题——1980. 找出不同的二进制字符串

技巧篇

①异或消消乐:n^n=0

例题👇

第 470 场周赛Q2——3702. 按位异或非零的最长子序列

贪心算法:14.增减字符串匹配

优选算法-位运算:34.丢失的数字

优选算法-位运算:36.只出现一次的数字Ⅱ

优选算法-位运算:37.消失的两个数字

E.位运算-异或:2588. 统计美丽子数组数目

A.每日一题:2196. 根据描述创建二叉树

②取出n的二进制中第x位:(n>>x)&1

例题👇

D.二分查找-二分答案-求最大——3143. 正方形中的最多点数

E.位运算-基础——461. 汉明距离+2220. 转换数字的最少位翻转次数

A.每日一题——868. 二进制间距

E.位运算-基础——2917. 找出数组中的 K-or 值

A.每日一题——693. 交替位二进制数

E.位运算-基础——2595. 奇偶位数

A.每日一题——1888. 使二进制字符串字符交替的最少反转次数

A.每日一题——1415. 长度为 n 的开心字符串中字典序第 k 小的字符串

③将n的二进制第x位改为1:n|=(1<<x)

例题👇

E.位运算-基础——2917. 找出数组中的 K-or 值

E.位运算-基础——2657. 找到两个数组的前缀公共数组

E.位运算-基础——面试题 05.01. 插入

将n的二进制第x位改为0:n&=(~(1<<x))

⑥位图思想:将值存进一个int或long里

例题👇

E.位运算-基础——2657. 找到两个数组的前缀公共数组

A.每日一题——3714. 最长的平衡子串 II

A.每日一题——3625. 统计梯形的数目 II

A.每日一题——1411. 给 N x 3 网格图涂色的方案数

A.每日一题——1356. 根据数字二进制下 1 的数目排序

A.每日一题——2154. 将找到的值乘以 2

A.每日一题:874. 模拟行走机器人

⑦取出n的二进制中最右侧的1:n&-n

例题👇

A.每日一题——231. 2 的幂(有n&-n的详细原理解析)

A.每日一题——2154. 将找到的值乘以 2

⑧将n的二进制中最右侧的1改为0:n&(n-1)

例题👇

A.每日一题——231. 2 的幂(有n&(n-1)的详细原理解析)

E.位运算-基础——191. 位1的个数

E.位运算-基础——338. 比特位计数

E.位运算-异或:2429. 最小异或

将n的二进制中最右侧的0改为1:n&(n+1)

E.位运算-异或:2429. 最小异或

2ⁿ:1<<n

例题👇

A.每日一题——231. 2 的幂

E.位运算-基础——191. 位1的个数

A.每日一题——1545. 找出第 N 个二进制字符串中的第 K 位

第 491 场周赛Q3——100936. 按位或的最小值

E.位运算-基础——476. 数字的补数+1009. 十进制整数的反码

E.位运算-基础——3370. 仅含置位位的最小整数

E.位运算-异或:1829. 每个查询的最大异或值

'1'→'0';'0'→'1':(char)n^=1

例题👇

A.每日一题——1545. 找出第 N 个二进制字符串中的第 K 位(有n^=1的详细原理解析)

A.每日一题——1758. 生成交替二进制字符串的最少操作数

A.每日一题——1888. 使二进制字符串字符交替的最少反转次数

A.每日一题——1980. 找出不同的二进制字符串

衍生用法

1→0;0→1:n^=1

例题👇

E.位运算-基础——2595. 奇偶位数

基础题

用位运算代替数组操作

题目及解析👇

E.位运算-基础——3370. 仅含置位位的最小整数

E.位运算-基础——3226. 使两个整数相等的位更改次数

A.每日一题——1356. 根据数字二进制下 1 的数目排序

E.位运算-基础——461. 汉明距离+2220. 转换数字的最少位翻转次数

E.位运算-基础——1342. 将数字变成 0 的操作次数

E.位运算-基础——476. 数字的补数+1009. 十进制整数的反码

A.每日一题——868. 二进制间距

E.位运算-基础——2917. 找出数组中的 K-or 值

A.每日一题——693. 交替位二进制数

E.位运算-基础——2657. 找到两个数组的前缀公共数组

E.位运算-基础——面试题 05.01. 插入

A.每日一题——231. 2 的幂

E.位运算-基础——342. 4的幂

E.位运算-基础——191. 位1的个数

E.位运算-基础——338. 比特位计数

E.位运算-基础——2595. 奇偶位数

A.每日一题——2154. 将找到的值乘以 2

E.位运算-基础——3211. 生成不含相邻零的二进制字符串

异或^(XOR)

这里的题目大多是“前缀异或”的思路

题目及解析👇

LeetCode编程入门中第五题:1486. 数组异或操作

E.位运算-异或:异或消消乐入门(1720题+2433题+2683题+2997题)

E.位运算-异或:1310. 子数组异或查询

E.位运算-异或:1829. 每个查询的最大异或值

E.位运算-异或:1442. 形成两个异或相等数组的三元组数目

E.位运算-异或:2429. 最小异或

E.位运算-异或:2527. 查询数组异或美丽值

E.位运算-异或:2317. 操作后的最大异或和

E.位运算-异或:2588. 统计美丽子数组数目

与&或|(AND/OR)

&时,1有“保留”的作用,而0有着“去除”的作用

题目及解析👇

E.位运算-与或:2980题+1318题+2419题

E.位运算-与或:2871题+2401题

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

IMO是谁?凭什么管全球航运?一篇读懂航运“总舵主”

IMO是谁&#xff1f;凭什么管全球航运&#xff1f;一篇读懂航运“总舵主” 一、谁是IMO&#xff1f;全球航运的“联合国” 国际海事组织&#xff08;International Maritime Organization, IMO&#xff09;是联合国下属的一个专门机构&#xff0c;堪称全球航运业的“总舵主”。…

作者头像 李华
网站建设 2026/6/10 15:02:36

用CppAD+IPOPT搞定一个简单的机器人轨迹优化问题:从建模到求解的完整C++示例

用CppADIPOPT实现机器人轨迹优化的工程实践指南在机器人运动规划领域&#xff0c;轨迹优化问题通常需要考虑动力学约束、障碍物避碰以及能量消耗等多重因素。传统解析方法往往难以处理这类复杂的非线性问题&#xff0c;而数值优化技术则展现出强大优势。本文将完整展示如何利用…

作者头像 李华
网站建设 2026/6/10 14:53:13

Qt 5.12.6 在 Windows 10 上安装,为什么我建议你选 MinGW 而不是 MSVC?

Qt 5.12.6 在 Windows 10 上的编译器选择&#xff1a;MinGW 还是 MSVC&#xff1f;当你第一次在 Windows 10 上安装 Qt 5.12.6 时&#xff0c;面对安装向导中 MinGW 和 MSVC 这两个编译器选项&#xff0c;可能会感到困惑。这两个选项背后代表着不同的工具链和开发哲学&#xff…

作者头像 李华
网站建设 2026/6/10 14:49:51

RStudio里cat()和sink()用哪个?数据科学新手必看的文件输出避坑指南

RStudio文件输出实战&#xff1a;如何优雅选择cat()与sink()函数在数据科学项目中&#xff0c;将分析结果可靠地保存到文件是每个R语言使用者必须掌握的核心技能。RStudio环境提供了多种输出方式&#xff0c;其中cat()和sink()是最常用的两种文本输出函数。新手常会困惑&#x…

作者头像 李华
网站建设 2026/6/10 14:48:14

雾语纪元:当城市在晨昏线学会用沉默交谈

2069年惊蛰&#xff0c;黎明前最暗的时刻&#xff0c;一场罕见的平流雾笼罩城市。能见度降至三米&#xff0c;交通信号完全失效&#xff0c;所有摄像头形同虚设。但城市没有瘫痪——相反&#xff0c;在这一小时十七分钟里&#xff0c;交通事故率为零。在看不见彼此的浓雾中&…

作者头像 李华