导航

位运算

Posted on 2019-03-16 17:14  菜花教授  阅读(108)  评论(0编辑  收藏  举报

位运算时, 连符号位一齐进行位运算

有负数进行位运算时, 要注意符号位,

 符号位为1 表明是补码, 要-1  取反变成原码

 

 

位运算符 ( & | ^ << >> ~

 1 # 按位与 &
 2  3 19 & 15
 4 """
 5     0001 0011
 6     0000 1111
 7  8     全真为真, 一假则假
 9     0000 0011    =    3
10 """

 

 

 
1 # 按位或   |
2 19 | 15
3 '''
4 0001 0011
5 0000 1111
6 7 全假则假, 一真为真
8 0001 1111  =  31
9 '''

 

 

 

1 # 按位异或  ^
2 19 ^ 15
3 '''
4 0001 0011
5 0000 1111
6 7 相同为假, 不同为真
8 0001 1100  =  28
9 '''

 

 

# ~ 按位非 (取反)
# 针对于补码进行操作, 符号位都要改变
# 公式   -(n+1)
~ 19
'''
按位非就是进行取反操作
0001 0011(补码)
​
1110 1100(按位非获得的补码)
1001 0011(反码)
1001 0100(原码)     =  -20
'''