Python二进制位操作符
介绍
在本文中,我们将讨论Python中的二进制位操作符。在Python中,有两种类型的操作符:逻辑操作符和二进制位操作符。这里我们主要讨论二进制位操作符。Python操作符通常用于处理数值和参数。本教程将探讨一种特定的Python操作符,称为二进制位操作符。这些符号表示数学和逻辑过程的常规符号。
二进制位操作符
二进制位操作是处理计算机中任何数据的基本组成部分——单个位的过程。每个位分配一个二进制值0或1。尽管机器可以操作位,但通常机器会以字节的形式存储数据并执行指令,字节是位的倍数。大多数脚本语言使用8位、16位或32位的组合。
二进制位操作符是表示对单个位进行操作的字符。通过将相同大小的两个位模式的不同位在空间上对齐来执行二进制位操作。
Python中的二进制位操作符
二进制位操作符在Python中用于对数字进行二进制位操作。首先将值转换为二进制,然后逐位进行操作,因此称为“二进制位操作符”。然后将结果显示为十进制数。
二进制逻辑操作符:这些操作符用于按位执行逻辑操作,类似于使用逻辑操作符and、or和not进行按位操作。除了这些基本事实外,二进制位和逻辑操作符是类似的。
二进制移位操作符:这些操作符通过将每个单独的位向左或向右移位,使整数乘以或除以2。当我们希望将一个值乘以或除以2的幂时,可以使用它们。Python的二进制位操作符只适用于整数。
运算符 | 描述 |
---|---|
& 二进制与 |
将两个操作数中都存在的位发送到输出。 |
| 二进制或 |
如果任一操作数中存在位,则复制该位。 |
^ 二进制异或 |
如果位在一个参数中被设置,但在两个参数中都不被设置,则复制该位。 |
~ 二进制取反 |
具有“翻转”位的功能,它是一元的。 |
<< 二进制左移 |
将左操作数的值向左移动指定的位数。 |
>> 二进制右移 |
右参数提供的位数将左操作数的位置向前移动。 |
每个二进制按位运算符都有一个执行增强应用的复合运算符。
运算符 | 语法 | Equivalent to |
---|---|---|
&= |
N1 &= N2 |
N1 = N1 & N2 |
|= |
N1 |= N2 |
N1 = N1 | N2 |
^= |
N1 ^= N2 |
N1 = N1 ^ N2 |
<<= |
N1 <<= n |
N1 = N1 << n |
>>= |
N1 >>= n |
N1 = N1 >> n |
这些是在左操作数仍然活动的情况下更新规则。
按位与运算
逻辑合取是通过对所提供的操作数的适当位进行按位与(&)操作来执行的。
程序代码 1:
Here we give an example of bitwise AND in Python. The code is given below -
x = 10 # Initialize the value of x by 10
y = 4 # Initialize the value of y by 4
# Bitwise AND operation
print("x & y =", x & y)
输出:
现在我们在Python中编译上述代码,在成功编译之后运行它。然后以下面的输出呈现 –
x & y = 0
程序代码 2:
这里我们通过将用户输入插入其中来举一个Python中的按位与的示例。代码如下 –
x = int(input("Enter the value of x: ")) # Taking user input for x
y = int(input("Enter the value of y: ")) # Taking user input for y
print("x & y =", x & y)
输出:
现在我们将上述代码编译成Python,在成功编译后运行它。然后输出如下 –
Enter the value of x: 5
Enter the value of y: 8
x & y = 0
位或运算
使用位或运算(|)可以实现逻辑或操作。如果至少有一对应的比特位为1,则结果为1。
程序代码:
下面我们给出一个Python中位或运算的示例代码:
x = 19 # Initialize the value of x by 19
y = 2 # Initialize the value of y by 2
#Bitwise OR operation
print("x | y =", x | y)
输出:
现在我们在Python中编译上面的代码,在成功编译之后,我们运行它。然后输出如下 –
x | y = 19
位非运算
由于位非运算符只需要一个参数,这是唯一的一元位运算符。它会将给定的数的所有位取反,实现逻辑非运算。这符号表示为~x,其中~表示取反。
程序代码:
这里我们给出一个在Python中使用位非运算的示例。代码如下所示 –
x = 43 # Initialize the value of x by 43
#Bitwise NOT operation
print("~x =", ~x)
输出:
现在我们在Python中编译上面的代码,并且编译成功后,运行它。然后输出如下 –
~x = -44
按位异或运算
当其中一个位是1,另一个位是0时,返回真;否则,返回假。
程序代码:
这里我们给出了Python中按位异或运算的一个示例。代码如下 –
x = 12 # Initialize the value of x by 12
y = 6 # Initialize the value of y by 6
#Bitwise XOR operation
print("x ^ y =", x ^ y)
输出:
现在我们在Python中编译上述代码,并在成功编译后运行它。然后输出如下 –
x ^ y = 10
位右移操作
通过这个操作,数字的每个位都向右移动,并且左侧的空位被填充为0(或者如果数字是负数,则填充为1)。结果类似于将一个值除以2的某个幂。
程序代码:
下面是一个Python中位右移的示例代码 –
x = 104 # Initialize the value of x by 104
y = -104 # Initialize the value of x by -104
#Bitwise right shift operator
print("x >> 1 =", x >> 3)
print("y >> 1 =", y >> 3)
输出:
现在我们在Python中编译上面的代码,在成功编译之后,运行它。然后下面给出输出 –
x >> 1 = 13
y >> 1 = -13
位左移
作为操作的结果,整数的每个位在右边的空位上被填充为0。结果类似于将值乘以2的幂。
程序代码:
这里我们给出了Python中位左移的一个示例。代码如下 –
x = 52 # Initialize the value of x by 52
y = -15 # Initialize the value of y by -15
#Bitwise left shift operator
print("x << 1 =", x << 1)
print("y << 1 =", y << 1)
输出:
现在我们在Python中编译上述代码,在成功编译后运行它。然后输出如下 –
x << 1 = 104
y << 1 = -30
所有运算符都在一个代码中:
在这段代码中,我们使用了所有的位运算符。代码如下所示 –
x = int(input("Enter the value of x: ")) # Taking user input for x
y = int(input("Enter the value of y: ")) # Taking user input for y
print("x & y =", x & y)
print("x | y =", x | y)
print("~y =", ~ y)
print("x ^ y =", x ^ y)
print("x >> 1 =", x >> 3)
print("y >> 1 =", y >> 3)
print("x << 1 =", x << 1)
print("y << 1 =", y << 1)
输出:
现在我们编译上面的Python代码,并且在成功编译后运行它。然后输出如下 –
Enter the value of x: 4
Enter the value of y: 5
x & y = 4
x | y = 5
~y = -6
x ^ y = 1
x >> 1 = 0
y >> 1 = 0
x << 1 = 8
y << 1 = 10