程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作。
Python 中有6种位运算符:
①&:按位与运算符,参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0;
②|:按位或运算符,只要对应的二个二进位有一个为1时,结果位就为1;
③^:按位异或运算符,当两对应的二进位相异时,结果为1;
④~:按位取反运算符,对数据的每个二进制位取反,即把1变为0,把0变为1;
⑤>>
:右移动运算符,把 >>
左边的运算数的各二进位全部右移若干位,>>
右边的数指定移动的位数;
⑥<<
:左移动运算符,运算数的各二进位全部左移若干位,由 <<
右边的数指定移动的位数,高位丢弃,低位补0。
举个栗子:a=21,b=6,将两个数转换为二进制形式进行位运算。
代码语言:javascript复制a = 0001 0101
b = 0000 0110
a&b = 0000 0100
a|b = 0001 0111
a^b = 0001 0011
~a = 1110 1010
a<<2 = 01010100
a>>2 = 0000 0101
来源:GitChat