位运算
(1)概念
程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作。比如,
a
n
d
and
and运算本来是一个逻辑运算符,但整数与整数之间也可以进行
a
n
d
and
and运算。举个例子,
6
6
6的二进制是
110
110
110,
11
11
11的二进制是
1011
1011
1011,那么
6
a
n
d
11
6 and 11
6and11的结果就是
2
2
2,它是二进制对应位进行逻辑运算的结果(
0
0
0表示
F
a
l
s
e
False
False,
1
1
1表示
T
r
u
e
True
True,空位都当
0
0
0处理)。
(2)关于位运算
三种常用的操作:
- 判断x的第i位是否为 1 1 1 i f ( x if( x if(x& ( 1 < < ( i − 1 ) ) ) ; (1<<(i-1))); (1<<(i−1)));
- 将x的第i位改为 1 1 1 x = x ∣ 1 < < ( i − 1 ) ; x=x|1<<(i-1); x=x∣1<<(i−1);
- 将x的最低位 1 1 1去掉 x = x x=x x=x& ( x − 1 ) ; (x-1); (x−1);
优先级: