[toc]

# 目的

仅仅是为了摘记算法

# 异或性质

1
2
3
4
5
6
x^0 = x
x^1111111...111 = ~x
x^(~x) = 1111111111
x^x = 0
a^b = c => a^c=b => b^c=a (交换律)
a^b^c = a^(b^c) = (a^b)^c (结合律)

# 构造特殊 Mask, 将对应位置放 0 或 1

x 最右边的 n 位清零

1
x & (~0<<n)

获取 x 的第 n 位值 (0 或者 1)

1
(x>>n) & 1

获取 x 的第 n 位的幂值

1
x & (1<<(n-1))

仅将第 n 位置为 1

1
x  (1<<n)

仅将第 n 位置为 0

1
x & (~(1<<n))

将 x 最高位至第 n 位 (含) 清零

1
x&((1<<n)-1)

将第 n 位至第 0 位 (含) 清零

1
x&(~((1<<(n+1))-1))

# 特殊意义的 & 位运算操作

判断奇偶

1
x&1 ==1

将最低位 (LSB) 的 1 清零

1
x&(x-1)

得到最低位 (LSB) 的 1

1
X & -X
1
X&-X=0
編集日

*~( ̄▽ ̄)~[お茶]を一杯ください

Solvarg WeChat 支払う

WeChat 支払う

Solvarg Alipay

Alipay

Solvarg PayPal

PayPal