"""
&  按位(与)运算符：参与运算的两个值，如果两个相应位都是1，则该位的结果为1，否则为0
|  按位(或)运算符：只要对应的两个二进制位有一个为1，结果就为1，反之为0
^  按位(异或)运算符:当两个二进制位相异时，结果为1,反之为0
~  按位(取反)运算符：对数据的每一个二进制位进行取反，即把1变为0，0变为1 ~x类似-x-1
<< 左移运算符：运算数的每一个二进制位全部向左移若干位，由<<右边的数字指定了移动的位数，高位丢弃，低位补0
>> 右移运算符：把>>左边的运算数的各个二进制位全部右移若干位，由>>右边数字控制移动的位数
"""

"""
0000 1010
0000 0110
---------
0000 0010
"""
a = 10
b = 6

print(a & b)
print(a | b)

print(a and b)
print(b and a)

"""
0000 1010
0000 0110
---------
0000 1100
"""
print(a ^ b)

print(~a)
"""
0000 1010
补码 1111 0101
反码 1111 0100
源码 1000 1011
-11
"""
"""
0000 1010
0000 0101
0001 0100
"""
print(a >> 1)
print(a << 1)
