Python中的6种位运算符?
目录
在Python中,按位运算符有左移运算符(«)、右移运算符(»)、按位与运算(&)、按位或运算(|)、按位取反运算(~)、异或运算符,其中按位取反运算符为单目运算符 。
运算符 | 描述 | 实例 |
---|---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 | (a & b) 输出结果 12 ,二进制解释:0000 1100 |
按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 | ||
^ | 按位异或运算符:当两对应的二进位相异时,结果为1 | (a ^ b) 输出结果 49 ,二进制解释:0011 0001 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 | (~a ) 输出结果 -61 ,二进制解释:1100 0011 |
« | 左移动运算符:运算数的各二进位全部左移若干位,由"«“右边的数指定移动的位数,高位丢弃,低位补0。 | a « 2 输出结果 240 ,二进制解释:1111 0000 |
>> | 右移动运算符:把”»“左边的运算数的各二进位全部右移若干位,"»“右边的数指定移动的位数 | a » 2 输出结果 15 ,二进制解释:0000 1111 |
下面分别来说说这几种Python所有位运算符的操作:
按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:
按位与 ( bitwise and of x and y )
& 举例:5&3 = 1 解释:101 11 相同位仅为个位1 ,故结果为 1
按位或 ( bitwise or of x and y )
| 举例:5|3 = 7 解释:101 11 出现1的位是 1 1 1,故结果为 111
按位异或 ( bitwise exclusive or of x and y )
^ 举例:5^3 = 6 解释:101 11 对位相加(不进位)是 1 1 0,故结果为 110
按位反转 (the bits of x inverted )
~ 举例:~5 = -6 解释:将二进制数+1之后乘以-1,即~x = -(x+1),-(101 + 1) = -110
按位反转仅能用在数字前面。所以写成 3+~5 可以得到结果-3,写成3~5就出错了
按位左移 ( x shifted left by n bits )
« 举例: 5«2 = 20 解释:101 向左移动2位得到 10100 ,即右面多出2位用0补
按位右移 ( x shifted right by n bits )
>> 举例:5»2 = 1 解释:101 向右移动2位得到 1,即去掉右面的2位
不足之处还望大家在下面补充,留言。