位运算
以下是位运算常用操作:
- 基础位运算
&:有 0 则为 0|:有 1 则为 1^:相同为 0,不同为 1 / 无进位相加>>:右边丢弃,左边补符号位(正数补 0,负数补 1)<<:左边丢弃,右边补 0~:每一位取反
- 给定一个数字 n,其二进制位第 x 位是 1/0?(从左向右为 0~31 位)
(n >> x) & 1
- 给定一个数字 n,使其二进制位第 x 位变为 1?
n |= (1 << x)
- 给定一个数字 n,使其二进制位第 x 位变为 0?
n &= (~(1 << x))
lowbit:将一个数字 n 的最低位 1 提取出来,eg:0101011010->0000000010
n & -n
- 将一个数 n 的最右侧 1 变为 0?
n & (n - 1)
- 关于异或操作
a ^ 0 = aa ^ a = 0a ^ b ^ c = a ^ (c ^ b)
上次更新: 2026/04/29, 15:44:34