Python-按位运算符
时间:2020-02-23 14:42:27 来源:igfitidea点击:
在本教程中,我们将学习Python中的位运算符。
我们在Python中使用按位运算符来处理位,即0和1。
以下是我们可以在Python中使用的按位运算符。
运算符 | 说明 |
---|---|
& | 按位AND |
| | 按位OR |
^ | 按位异或者,即XOR |
~ | 补语 |
<< | 向左移 |
>> | 向右移 |
按位与
仅当两个操作数均为1时,按位AND运算符&才会给出1,否则为0。
按位与的真值表。
A | B | A & B |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
在下面的示例中,我们有两个整数值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。
按位或者的真值表。
A | B | A | B |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
在下面的示例中,我们有两个整数值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的真值表。
A | B | A ^ B |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
在下面的示例中,我们有两个整数值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)