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位

不足之处还望大家在下面补充,留言。

随机文章