位运算

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

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

 符号位为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
'''

 

原文地址:https://www.cnblogs.com/caihuajiaoshou/p/10543182.html