一、位运算符
运算符 | 含义 |
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,在将得出的结果转化为十进制,得出位或的结果