0
点赞
收藏
分享

微信扫一扫

位运算(位于、位或、异或、按位取反、位左移、位右移)及相应示例


一、位运算符

运算符

含义

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

四、示例二

给出了八种不同特征的编码方式,每种编码方式都是由三位二进制位组成的
分别表示是否党员(最低位)、是否贫困学生(次低位)和是否参军(最高位)

位运算(位于、位或、异或、按位取反、位左移、位右移)及相应示例_位或_02

非党员

非贫困学生

未参军

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,在将得出的结果转化为十进制,得出位或的结果


举报

相关推荐

0 条评论