一、位运算符
运算符  | 含义  | 
a&b  | 位与  | 
a  | b  | 
a^b  | 异或  | 
~a  | 按位取反  | 
a<<b  | 位左移  | 
a>>b  | 位右移  | 
二、运算符说明:把他们转化为二进制 从低到高按位运算
位与( & ):当 两位 都为1时,结果为1,否则为0,在将得出的结果转化为十进制,得出位于的结果位或( | )当且仅当两位都为0时,结果为0,否则为1,在将得出的结果转化为十进制,得出位或的结果异或( ^ )当且仅当两位不同时,结果为1,否则为0,在将得出的结果转化为十进制,得出异或的结果- 
按位取反( ~ ):1—0 0—1 - 
左移(<<):末位补0 - 
右移(>>):负数补1,非负数补零 
三、示例一
两种状态:0 、 1
 三种状态:0、1、10

- 最初:0000
- 点赞:0001
- 投币:0010
- 2币 :0100
- 收藏:1000
- 三连:1101点赞、投币、收藏用到的bit位是相互独立的,用位或运算符对其进行组合
- 最初:      0000 | 点赞:0001  =   点赞  0001              对应十进制数1
- 点赞        0001 | 2币: 0100  =  点赞 + 2币  0101         对应十进制数5
- 点赞 + 2币  0101 | 收藏  1000 =   点赞 + 2币 + 收藏 1101    对应十进制数13四、示例二
给出了八种不同特征的编码方式,每种编码方式都是由三位二进制位组成的
分别表示是否党员(最低位)、是否贫困学生(次低位)和是否参军(最高位)
非党员  | 非贫困学生  | 未参军  | 000  | 0  | 
非党员  | 非贫困学生  | 参军  | 001  | 1  | 
非党员  | 贫困学生  | 未参军  | 010  | 2  | 
非党员  | 贫困学生  | 参军  | 011  | 3  | 
党员  | 非贫困学生  | 非参军  | 100  | 4  | 
党员  | 非贫困学生  | 参军  | 101  | 5  | 
党员  | 贫困学生  | 非参军  | 110  | 6  | 
党员  | 贫困学生  | 参军  | 111  | 7  | 
- 
位与( & ):当 两位 都为1时,结果为1,否则为0,在将得出的结果转化为十进制,得出位于的结果
筛选非党员–贫困学生-未参军 = 010 = 2的学生就可以通过 type&7=2
010 & 111 = 010 - 
位或( | ):当且仅当两位都为0时,结果为0,否则为1,在将得出的结果转化为十进制,得出位或的结果 
                










