1用法:掩码
“位与”运算符通常与掩码一起使用。掩码是某些位设为开(1)而某些位设为关(0)的位组合。假设定义符号常量MASK为2 ,即二进制的00000010,只有位1是非零。那么:
flags=flags&MASK;
这个语句将导致flags的除位1之外的所有位都被设为0,原因是它的任何位使用 &运算符与0组合都得0;位1将保持不变。因为掩码中的零覆盖了flags中相应的位,该过程称为“使用掩码”。
ch&=0xff; //该掩码留下ch的最后8位,将其余为设为0。无论最初的ch是8位,16位或是更多,都将最终的值修整到一个字节中。
2用法:打开位
例如,考虑MASK,其位1设为1。下面的语句将flags中的位1设为1,并保留其他所有位不变:
flags=flags|MASK;
3用法:关闭位
不影响其他位,同时能够将特定的位关闭与能够将特定的位打开一样是有用。假设您想关闭变量flags中的位1.MASK仍然只有位1是打开。您可以做如下操作:
flags=flags&~MASK;
4用法:转置位
转置一个位表示如果该为打开。则关闭该位;如果该位关闭,则打开该位。
如果使用^将一个值与掩码组合,那么该值中对应掩码为位1的位被转置。对应掩码位为0的位不改变。
flag=flag^MASK;
5用法:移位运算符
number<<n number乘以2的n次幂
number>>n 如果number非负,则用number除以2的n次幂