基本概念
位运算:用于对整数类型(int,char,long,等)变量中的某一位bit,或者若干位进行操作。
判断某一位是否为1
只改变其中某一位,而保持其他位都不变。
C/C++语言提供了六种运算符来进行位运算操作:
1. & 按位与(双目)
将参与运算的两操作数各对应的二进制位进行**与**操作,只有**对应的两个二进制均为1时**,结果的对应二进制才为1,否则为0。
21&18=16
21:0001 0101
18:0001 0010
0001 0000
通常用来将某变量中的**某些位**清0**且同时保留其他位不变**。
也可用来**获取某变量中的某一位**。
eg:
(1.将Int变量n的低八位全置成0,其余不变,n=n&0xffffff**00**;
(2.如果n时 short型 n&=0xff00;
(3.判断一个int类型变量的第七位是否为1:
只需看n&0x80是否为n&0x80(1000 0000)
2. | 按位或(双目)
**对应的两个二进制都为0**,结果对应的二进制才为0,否则为1。
eg: