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

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

一、常见位运算

按位与          & 有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
(符合交换律)

九、相关题目链接

力扣


相关文章
|
9月前
|
Java C++
数的范围(考查二分)
数的范围(考查二分)
59 0
|
8月前
|
算法 索引
力扣随机一题 位运算/滑动窗口/数组
力扣随机一题 位运算/滑动窗口/数组
59 0
【Leetcode -748.最短补全词 -762.二进制表示中质数个计算置位】
【Leetcode -748.最短补全词 -762.二进制表示中质数个计算置位】
61 0
|
9月前
|
算法
简记二分算法模板与代码案例:整数二分和浮点数二分
本文介绍了两种算法模板,分别是整数二分和浮点数二分。
72 0
|
9月前
|
算法 测试技术 C#
【二进制求公约数】【数学】【数论】2543. 判断一个点是否可以到达
【二进制求公约数】【数学】【数论】2543. 判断一个点是否可以到达
|
9月前
leetcode:268. 丢失的数字(异或运算)
leetcode:268. 丢失的数字(异或运算)
46 0
Leecode 面试题57 - II. 和为s的连续正数序列
Leecode 面试题57 - II. 和为s的连续正数序列
59 0
leetcode-829. 连续整数求和(数论)
这题求连续正整数,刚好满足等差数列,可以用等差数列求和公式 n = (i + (i + k)) * (k + 1) / 2 其中i是连续正整数的首项,k是尾项和首项的差值
136 0
leetcode-829. 连续整数求和(数论)
LeetCode 1913. 两个数对之间的最大乘积差
两个数对 (a, b) 和 (c, d) 之间的 乘积差 定义为 (a * b) - (c * d) 。
88 0
|
编译器 API C语言
力扣面试题17.04 - 消失的数字【求和相减 + 异或位运算 + 哈希表】
三种方法巧解力扣面试题17.04 - 消失的数字,你值得拥有
167 0
力扣面试题17.04 - 消失的数字【求和相减 + 异或位运算 + 哈希表】