按位运算符对位进行运算并执行逐位运算。假设a = 60; 并且b = 13; 现在,以二进制格式,它们的值将分别为0011 1100和0000 1101。下表列出了Python语言支持的按位运算符,并分别举例说明,我们将上述两个变量(a和b)用作操作数-
a = 0011 1100 b = 0000 1101 ----------------- a&b = 0000 1100 a|b = 0011 1101 a^b = 0011 0001 ~a = 1100 0011
Python语言支持以下Bitwise运算符。
序号 | 运算符和说明 | 例 |
---|---|---|
1 | &二进制AND 运算符将两个结果都复制到结果中 | (a和b)(表示0000 1100) |
2 | | 二进制或 如果它存在于任一操作数中,它将复制一位。 | (a | b)= 61(意味着0011 1101) |
3 | ^ Binary XOR 如果在一个操作数中设置了该位,但未在两个操作数中都设置了位,则将其复制。 | (a ^ b)= 49(意味着0011 0001) |
4 | 〜二进制补码 这是一元的,具有“翻转”位的作用。 | (〜a)= -61(由于带符号的二进制数,表示2的补码形式的1100 0011。 |
5 | << Binary Left Shift 左操作数的值向左移动右操作数指定的位数。 | a << 2 = 240(表示1111 0000) |
6 | >>二进制右移 左操作数的值向右移动右操作数指定的位数。 | a >> 2 = 15(意味着0000 1111) |
7 | ** =指数AND 对运算符执行指数(幂)计算并将值赋给左操作数 | c ** = a等效于c = c ** a |
8 | // =地板除法 它对运算符执行地板除法并将值分配给左操作数 | c // = a等效于c = c // a |
#!/usr/bin/python a = 60 # 60 = 0011 1100 b = 13 # 13 = 0000 1101 c = 0 c = a & b; # 12 = 0000 1100 print "Line 1 - Value of c is ", c c = a | b; # 61 = 0011 1101 print "Line 2 - Value of c is ", c c = a ^ b; # 49 = 0011 0001 print "Line 3 - Value of c is ", c c = ~a; # -61 = 1100 0011 print "Line 4 - Value of c is ", c c = a << 2; # 240 = 1111 0000 print "Line 5 - Value of c is ", c c = a >> 2; # 15 = 0000 1111 print "Line 6 - Value of c is ", c
输出结果
当您执行上述程序时,它将产生以下结果-
Line 1 - Value of c is 12 Line 2 - Value of c is 61 Line 3 - Value of c is 49 Line 4 - Value of c is -61 Line 5 - Value of c is 240 Line 6 - Value of c is 15