- js24007 的博客
0:位运算
- @ 2025-8-26 11:55:23
位运算
按位与
- 符号:&
- 逻辑:
- 1&1=1
- 1&0=0
- 0&1=0
- 0&0=0
- tip:
(n&1)等价于(n%2)并且更快速;
按位或
- 符号:|
- 逻辑:
- 1|1=1
- 1|0=1
- 0|1=1
- 0|0=0
按位异或
- 符号:^
- 逻辑:
- 1^1=0
- 1^0=1
- 0^1=1
- 0^0=0
- 有趣的公式:
- a^0=a
- a^a=0
- a^b^b=a
- a^b^c=a^c^b
- 有趣的性质:
- 按位异或的逆运算是它本身
- 有趣的交换a,b技巧:
a=a^b;
b=a^b;
a=a^b;
按位取反
- 符号:~
- 逻辑:
- ~1=0
- ~0=1
- tip:
- 取反连同符号位一起取反,signed 需特殊处理
左移右移
符号:
- 左移:<<
- 右移:>>
逻辑(二进制):
- 左移:
- 1<<1=10
- 1<<2=100
- 右移:
- 10>>1=1
- 101>>2=1
- tip:
<<等价于*2>>等价于/2(整型)