Python位运算符及示例-详解
在 Python 中,有不同类型的运算符可以帮助我们执行从 算术 到 comparison 以及从 identity 到 membership 操作的不同操作。 这些运算符使用特殊符号和保留关键字对值和变量执行特定操作。 对值进行操作的运算符称为操作数。 与这些运算符一样,Python 有一个内置的运算符,可以对 bits 进行运算。 简介 与 Python 中的所有运算符一样,有一个 Bitwi
在 Python 中,有不同类型的运算符可以帮助我们执行从 算术 到 comparison 以及从 identity 到 membership 操作的不同操作。
这些运算符使用特殊符号和保留关键字对值和变量执行特定操作。
对值进行操作的运算符称为操作数。
与这些运算符一样,Python 有一个内置的运算符,可以对 bits 进行运算。
简介
与 Python 中的所有运算符一样,有一个 Bitwise Operator 用于对整数值执行按位计算。
就像它的名字所描述的那样,这个运算符将整数值转换为二进制格式然后然后对其执行逐位运算并再次以十进制格式返回结果。
为什么要转换成二进制格式?
有两种类型的数字系统:
-
德纳留斯 (0 - 9)
-
二进制(0和1)
好吧,我们人类在日常生活中理解并使用具有十位数字(0-9)的数字系统。但是计算机呢? 因此计算机通过操作 1 和 0 来工作,这些是二进制数字, 或简称为 bits。
现在您已经知道要对整数值执行按位计算,计算机将转换为计算机可以理解的 1 和 0。
按位运算有 6 种类型:
操作员
描述
句法
**&**
按位与
**x & y**
**|**
按位或
**x | y**
**~**
按位非
**~x**
**^**
按位异或
**x ^ y**
**>>**
按位右移
**x>>**
**<<**
按位左移
**x<<**
让我们一一讨论。
注意:按位运算符仅适用于int
(整数)类型,否则将引发TypeError
。
按位与运算符
按位 AND 运算符由 "&"(和号)符号表示。
当我们对值执行按位与运算时,如果两个位都为 1,则返回 1,否则返回 0。
x = 5 # 0101 (binary)
y = 6 # 0110 (binary)
output = x & y
print(output)
>>> 4
输出将是 4。
在那里你可以看到它当从右数第二个索引处的二进制数字都为 1 时返回 1,当其中一个位为 0 而另一个位为 1 时返回 0。
如果我们在算术上看到它,那么等式是
这里x
和y
是转换成二进制格式的整数值,index
是二进制数字的索引号。
如果我们尝试使用这个等式获得结果,那么过程将是
现在你对幕后发生的事情有了一个很好的了解。
按位或运算符
按位或运算符由 "|"(竖线)符号表示。
按位或运算符 如果任何位为 1,则返回 1 否则 它将返回 0。
x = 5 # 0101 (binary)
y = 6 # 0110 (binary)
output = x | y
print(output)
>>> 7
输出将是 7
在这里,当任何一个位为 1 时返回 1,否则返回 0。
算术方程
对二进制数字执行等式
在这里,我们执行了一个简单的算术运算。
按位非运算符
按位 NOT 运算符由 "~" (反转)符号表示。
它使用一元 ( ~ ) 反转运算符并反转所有位。
执行此等式后返回结果
x = 5 # 0101 (binary)
output = ~x
print(output)
>>> -6
正如您已经看到上面的等式一样,让我们看看它是如何在幕后发生的
现在,如果您想知道0101
+1
u003d0110
为什么不是0101
+1
u003d0102
?
如果我们在二进制中添加1
+1
,那么我们将得到10
。
二进制加法只有三个规则:
- 0 + 0 u003d 0
- 0 + 1 u003d 1 或 1 + 0 u003d 1
- 1 + 1 u003d 10来源
如果我们在算术上看到它,那么过程将与上面相同。
按位异或运算符
按位 XOR 运算符由 "^"(抑扬符)符号表示。
按位 XOR 运算符 如果其中一个位为 0 且另一个位为 1,则返回 1 否则如果两个位相同,即两个位均为 0 或 1,则返回 0。
x = 5 # 0101 (binary)
y = 6 # 0110 (binary)
output = x ^ y
print(output)
>>> 3
输出将是 3
算术方程将是
该等式看起来很简单,但要记住的一件事是( % )符号不用于计算值的百分比,它是 模 返回余数股息和除数。
Python 有一个内置的模运算符。
%(模)运算符从第一个参数除以第二个参数产生余数。数字参数首先转换为通用类型。来源
让我们看看如何做到这一点以获得结果
在这里你可以看到当我们执行 1 % 2 (1 modulo 2) 时我们得到 1。当我们执行简单除法时,我们得到 0.5 作为商,余数为 0 但是当我们在 Python 中执行 1 % 2 时,我们将在控制台中得到 1。
在您的 Python 程序中尝试一下。
按位左移运算符
按位左移运算符由 "<<" 符号表示。
如果你仔细看,你会发现它好像在向左移动。嗯,它和它看起来一样。
按位左移运算符将左操作数向左移动,在右操作数中指定的次数。
用简单的术语来说,指定数量的 0 附加在二进制数的末尾。
x = 5 # 0101 (binary)
output = x<<2
print(output)
>>> 20
输出将是 20。
在上面的示例中,通过将二进制数字向左移动,在末尾附加了 00 (2) 个零。
它也有一个方程,我们可以通过算术得到结果
这里x
是二进制数字,n
是要移位的次数。
在算术上,二进制数字乘以 2 的幂n
。
如果我们试图通过算术获得结果,那么这个过程将是
如果您无法理解二进制数字的乘法,请参阅 google 上的文章。
按位右移运算符
按位右移运算符由 ">>" 符号表示。
如果你仔细看,你会发现它好像在指示右移。嗯,它和它看起来一样。
按位右移运算符将左操作数右移,右操作数中指定的次数。
在简单的术语中,右侧位被删除。
x = 5 # 0101 (binary)
output = x>>2
print(output)
>>> 1
输出将是 1
好吧,如果我们看到方程,它与左移运算符方程有点不同
在左移运算符方程中,我们将二进制数字从 2 乘以n
的幂,我们在这里做同样的事情,但不是乘,而是除。
让我们看看我们如何在算术上执行它
如果您不知道如何划分二进制数字,请参阅 google 上的文章。
结论
您已经了解了按位运算符可以做什么以及它们如何在幕后运行方程式。
理解位运算可以让你解锁在 Python 代码中使用不同的位运算符来操作二进制数字的知识。
继续并开始在 Python 程序中处理二进制数,并充分利用您的知识。
这就是本文的全部内容
继续编码✌✌
更多推荐
所有评论(0)