Python-按位运算符

时间:2020-02-23 14:42:27  来源:igfitidea点击:

在本教程中,我们将学习Python中的位运算符。

我们在Python中使用按位运算符来处理位,即0和1。

以下是我们可以在Python中使用的按位运算符。

运算符说明
&按位AND
|按位OR
^按位异或者,即XOR
~补语
<<向左移
>>向右移

按位与

仅当两个操作数均为1时,按位AND运算符&才会给出1,否则为0。

按位与的真值表。

ABA & B
000
010
100
111

在下面的示例中,我们有两个整数值1和3,我们将执行按位与运算并显示结果。

# variables
x = 1
y = 3

# bitwise operation
result = x & y

print("result:", result)	# result: 1

上面代码的按位与运算的计算。

# representing decimal in 32 bits (4 bytes)

  1 (decimal) = 0000 0000 0000 0000 0000 0000 0000 0001 (binary)
& 3 (decimal) = 0000 0000 0000 0000 0000 0000 0000 0011 (binary)
---------------------------------------------------------------
  1 (decimal) = 0000 0000 0000 0000 0000 0000 0000 0001 (binary)

单击此处了解如何将数字从十进制转换为二进制。

按位或

仅当两个操作数均为0时,按位OR|才会为0,否则为1。

按位或者的真值表。

ABA | B
000
011
101
111

在下面的示例中,我们有两个整数值1和2,我们将执行按位或者运算并显示结果。

# variables
x = 1
y = 2

# bitwise operation
result = x | y

print("result:", result)	# result: 3

上面代码的按位或者运算的计算。

//representing decimal in 32 bits (4 bytes)

  1 (decimal) = 0000 0000 0000 0000 0000 0000 0000 0001 (binary)
| 2 (decimal) = 0000 0000 0000 0000 0000 0000 0000 0010 (binary)
---------------------------------------------------------------
  3 (decimal) = 0000 0000 0000 0000 0000 0000 0000 0011 (binary)

按位异或

按位XOR^将为1的奇数给出1,否则为0。

按位XOR的真值表。

ABA ^ B
000
011
101
110

在下面的示例中,我们有两个整数值2和7,我们将执行按位XOR运算并显示结果。

# variables
x = 2
y = 7

# bitwise operation
result = x ^ y

print("result:", result)	# result: 5

上面代码的按位XOR操作的计算。

//representing decimal in 32 bits (4 bytes)

  2 (decimal) = 0000 0000 0000 0000 0000 0000 0000 0010 (binary)
^ 7 (decimal) = 0000 0000 0000 0000 0000 0000 0000 0111 (binary)
---------------------------------------------------------------
  5 (decimal) = 0000 0000 0000 0000 0000 0000 0000 0101 (binary)

取反

取反~是一元运算符,它将0转换为1,并将1转换为0。

在下面的示例中,我们有一个整数2,我们将计算其补数。

# variable
x = 2

# bitwise operation
result = ~x

print("result:", result)	# result: -3

以上代码的计算。

//representing decimal in 32 bits (4 bytes)

2 (decimal) = 0000 0000 0000 0000 0000 0000 0000 0010 (binary)
-------------------------------------------------------------
         ~2 = 1111 1111 1111 1111 1111 1111 1111 1101 (binary)
            = -3 (decimal)

我们得到-3,因为我们正在处理带符号的整数。

左移

我们使用左移" <<"运算符将位左移。

在下面的示例中,我们有一个整数,我们将向左移1位。

# variable
x = 4

# bitwise operation
result = x << 1

print("result:", result)	# result: 8

计算方式:

//representing decimal in 32 bits (4 bytes)

4 (decimal) = 0000 0000 0000 0000 0000 0000 0000 0100 (binary)
-------------------------------------------------------------
     4 << 1 = 0000 0000 0000 0000 0000 0000 0000 1000 (binary)
            = 8 (decimal)

右移

我们使用右移" >>"运算符将位右移。

在下面的示例中,我们有一个整数,我们将右移1个位置。

# variable
x = 4

# bitwise operation
result = x >> 1

print("result:", result)	# result: 2

计算方式:

//representing decimal in 32 bits (4 bytes)

4 (decimal) = 0000 0000 0000 0000 0000 0000 0000 0100 (binary)
-------------------------------------------------------------
     4 >> 1 = 0000 0000 0000 0000 0000 0000 0000 0010 (binary)
            = 2 (decimal)