常见位运算的公式大全(建议收藏,以防走丢)

简介: 常见位运算的公式大全(建议收藏,以防走丢)

一、常见位运算

按位与          & 有0为0
按位或           | 有1为1
按位异或           ^ 相同为0,相异为一 \ 无进位相加
按位取反           ~ 每个二进制位的0变成1,1变成0
左移操作符          << 向左移动n个二进制位,右边补0
右移操作符          >> 向右移动n个二进制位,左边补符号位

二、位运算优先级

本着一条原则:能加括号就加括号,别给自己找麻烦

三、给一个数n,确定它的二进制的第x位是0还是1

我们要默认最低位的二进制位的下标为0

公式 (n >> x) & 1  结果为0,第x位就是0
结果为1,第x为就是1

四、将一个数n的二进制的第x位修改为1

公式  n |= (1 << x) 

五、将一个数n的二进制的第x位修改为0

公式 n &= ( ~(1 << x) )

六、提取二进制数最右侧的1

公式 n & -n

七、去除二进制数最右侧的1

公式 n & (n - 1)

八、异或运算( ^ )

a ^ 0 = a
a ^ a = 0
a ^ b ^ c = b ^ c ^ a
(符合交换律)

九、相关题目链接

力扣


相关文章
|
4月前
|
Java 开发者
【编程基础知识】2的n次幂与二进制位全为1之间的联系,为啥只差一个1
本文深入探讨了2的n次幂与二进制位全为1之间的数学联系,解释了2的n次幂减一的二进制表示为何全为1,并探讨了这一特性在HashMap中的应用。通过基础数学原理和实际代码示例,文章揭示了这一特性的实用价值,适合各水平的编程爱好者学习。
33 3
|
6月前
|
算法
【算法】位运算算法——丢失的数字
【算法】位运算算法——丢失的数字
|
8月前
|
算法 索引
力扣随机一题 位运算/滑动窗口/数组
力扣随机一题 位运算/滑动窗口/数组
59 0
|
8月前
|
算法 Java
Java数据结构与算法:位运算之位移操作
Java数据结构与算法:位运算之位移操作
|
9月前
|
算法
简记二分算法模板与代码案例:整数二分和浮点数二分
本文介绍了两种算法模板,分别是整数二分和浮点数二分。
71 0
|
9月前
|
算法 测试技术 C++
【数学归纳法】【位运算】【异或】3068最大节点价值之和
【数学归纳法】【位运算】【异或】3068最大节点价值之和
|
9月前
leetcode:268. 丢失的数字(异或运算)
leetcode:268. 丢失的数字(异或运算)
46 0
|
9月前
循环队列中的求队列长度公式怎么来的?【数学角度】
循环队列中的求队列长度公式怎么来的?【数学角度】
387 0
|
Java
简单计算时间复杂度
简单计算时间复杂度
43 1
|
人工智能 vr&ar
数列分块入门 1 (单点查值,区间加法)
数列分块入门 1 (单点查值,区间加法)
90 0