Python按位运算符示例

广告位

按位运算符执行逐位运算。假设变量a = 60; 和变量b = 13; 现在以二进制格式,它们将如下 &#821…

按位运算符执行逐位运算。假设变量a = 60; 和变量b = 13; 现在以二进制格式,它们将如下 –

a = 0011 1100    b = 0000 1101    -----------------    a&b = 0000 1100    a|b = 0011 1101    a^b = 0011 0001    ~a = 1100 0011  

Python的内置函数bin()可用于获取整数的二进制表示形式。

以下是Python语言支持位运算操作符 –

运算符 描述 示例
& 如果它存在于两个操作数中,则操作符复制位到结果中 (a & b) 结果表示为 0000 1100
Python按位运算符示例 如果它存在于任一操作数,则复制位。 (a Python按位运算符示例 b) = 61 结果表示为 0011 1101
^ 二进制异或。如果它是一个操作数集合,但不是同时是两个操作数则将复制位。 (a ^ b) = 49 (结果表示为 0011 0001)
~ 二进制补码,它是一元的,具有“翻转”的效果。 (~a ) = -61有符号的二进制数,表示为1100 0011的补码形式。
<< 二进制左移,左操作数的值由右操作数指定的位数左移。 a << 2 = 240 (结果表示为 1111 0000)
>> 二进制右移,左操作数的值由右操作数指定的位数右移。 a >> 2 = 15(结果表示为0000 1111)

实例

假设变量a的值是60,变量b的值是13,参考以下代码实现 –

#!/usr/bin/python3  #coding=utf-8  #save file : bitwise_operators_example.py      a = 60            # 60 = 0011 1100  b = 13            # 13 = 0000 1101  print ('a=',a,':',bin(a),'b=',b,':',bin(b))  c = 0    c = a & b;        # 12 = 0000 1100  print ("result of AND is ", c,':',bin(c))    c = a | b;        # 61 = 0011 1101   print ("result of OR is ", c,':',bin(c))    c = a ^ b;        # 49 = 0011 0001  print ("result of EXOR is ", c,':',bin(c))    c = ~a;           # -61 = 1100 0011  print ("result of COMPLEMENT is ", c,':',bin(c))    c = a << 2;       # 240 = 1111 0000  print ("result of LEFT SHIFT is ", c,':',bin(c))    c = a >> 2;       # 15 = 0000 1111  print ("result of RIGHT SHIFT is ", c,':',bin(c))  

将上面代码保存到文件: bitwise_operators_example.py 中,执行结果如下 –

F:worksppython>python bitwise_operators_example.py  a= 60 : 0b111100 b= 13 : 0b1101  result of AND is  12 : 0b1100  result of OR is  61 : 0b111101  result of EXOR is  49 : 0b110001  result of COMPLEMENT is  -61 : -0b111101  result of LEFT SHIFT is  240 : 0b11110000  result of RIGHT SHIFT is  15 : 0b1111  

贺, 贺朝

关于作者: 贺朝

为您推荐