位运算

1.按位与&:都为1时结果为1,常用于将变量的某些位清零,且其他位不变,如n&0xfffff00
2.按位或|:有一个为1则为1,常用于将变量的某些位变成1,且其他位不变,如n|0xff
3.按位异或^:两位不同时则为1,常用于将变量的某些位取反,且其他位不变,如n^0xff。根据特性,还可以用来直接交换两个变量的值
4.按位非~:取反操作
5.左移:相当于乘以2的n次幂
6.右移:相当于除以2的n次幂,除不尽时向小取整。对于有符号数,符号
位随着一起移动,且按符号位的数补足高位

2018年3月15日更新

&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式。
&还可以用作按位与的运算符,两个表达式的值按二进制位展开,对应的位(bit)按值进行“与”运算,结果保留在该位上
运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1;
0 二进制 00000000
1 二进制 00000001
2 二进制 00000010
4 二进制 00000100
8 二进制 00001000
1|2|4|8= 00001111
结果值&4的话就是00000100结果恰好是4
结果值&2的话就是00000010结果恰好是2
看到这一现象我们就会领会到按位掩码的枚举组合来判断状态的好处了

你可能感兴趣的:(位运算)