Python的位运算符与移位运算符

2026-05-25
Python的位运算符与移位运算符 关注 新手上路 关注 新手上路 关注 新手上路 关注 新手上路 2023/07/18 16:46

在学习这篇文章的时候,遇到了一个关于位运算符的概念,想要弄清楚,所以就去查了一下资料。下面是具体的内容。

一、位运算符

按位与(AND):

a = 10  # 二进制表示为 1010
b = 6   # 二进制表示为 0110
result = a & b
print(result)  # 输出 2,二进制表示为 001

这里的计算是按位与运算符(&)进行的。按位与运算的规则是,对于两个操作数的每个对应位,只有当两个位上的值都为 1 时,结果的对应位才为 1。否则,结果的对应位为 0。 Cassinos trustguru.com.br guias trustguru.com.br

让我们逐位对 ab 进行按位与运算来计算结果: sugarrush1000demo trustguru.com.br pgslot trustguru.com.br slotpix trustguru.com.br pg trustguru.com.br

   a:  1  0  1  0    (二进制)
   b:  0  1  1  0    (二进制)
------------------
result:  0  0  1  0    (二进制)

通过对每个对应位进行按位与运算,得到结果 0010,它的十进制表示为 2。 tigrinhodemo trustguru.com.br

因此,result 的值是 2,二进制表示为 0010A5game trustguru.com.br plataformademo trustguru.com.br

按位或(OR):

a = 10  # 二进制表示为 1010
b = 6   # 二进制表示为 0110
result = a | b
print(result)  # 输出 14,二进制表示为 1110

这里的计算是按位或运算符(|)进行的。按位或运算的规则是,对于两个操作数的每个对应位,只要有一个位上的值为 1,结果的对应位就为 1。否则,结果的对应位为 0。

让我们逐位对 ab 进行按位或运算来计算结果: carlos trustguru.com.br

   a:  1  0  1  0    (二进制)
   b:  0  1  1  0    (二进制)
------------------
result:  1  1  1  0    (二进制)

通过对每个对应位进行按位或运算,得到结果 1110,它的十进制表示为 14。 rafael trustguru.com.br fortuneoxdemográtis trustguru.com.br

因此,result 的值是 14,二进制表示为 1110a5game trustguru.com.br pgslotgacor trustguru.com.br

按位异或(XOR):

a = 10  # 二进制表示为 1010
b = 6   # 二进制表示为 0110
result = a ^ b
print(result)  # 输出 12,二进制表示为 1100

这里的计算是按位异或运算符(^)进行的。按位异或运算的规则是,对于两个操作数的每个对应位,只有当两个位上的值不相同时,结果的对应位才为 1。如果两个位上的值相同,则结果的对应位为 0。 Sportingbet trustguru.com.br pgdemo trustguru.com.br

让我们逐位对 ab 进行按位异或运算来计算结果: Blaze trustguru.com.br marcos trustguru.com.br fortunetigerbônusgrátissemdepósito trustguru.com.br

   a:  1  0  1  0    (二进制)
   b:  0  1  1  0    (二进制)
------------------
result:  1  1  0  0    (二进制)

通过对每个对应位进行按位异或运算,得到结果 1100,它的十进制表示为 12。 fortunedragon demo trustguru.com.br noticias trustguru.com.br

因此,result 的值是 12,二进制表示为 1100miguel trustguru.com.br sweetbonanza1000demo trustguru.com.br trustguru trustguru.com.br slots trustguru.com.br

按位取反(NOT):

a = 10  # 二进制表示为 1010
result = ~a
print(result)  # 输出 -11,二进制表示为 -1011(根据二进制补码表示)

按位取反运算符(~)是一元运算符,用于对操作数的每个位执行逻辑非操作,即将每个位上的 0 改为 1,将每个位上的 1 改为 0。 Bet trustguru.com.br sobre trustguru.com.br Pixbet trustguru.com.br

在上述示例中,a 的二进制表示是 1010。应用按位取反运算符后,对每个位执行逻辑非操作: bet365 trustguru.com.br

   a:  1  0  1  0    (二进制)
------------------
result:  0  1  0  1    (二进制)

结果得到 0101,但需要注意的是,这个结果并不是直接的二进制表示。在大多数计算机中,负数使用二进制补码表示。所以,在这个例子中,我们得到的是补码 0101,它的补码形式就是 -1011。因此,result 的值是 -11,二进制补码表示为 -1011Brazino777 trustguru.com.br kto trustguru.com.br fortunetigerdemográtis trustguru.com.br slotdemo trustguru.com.br

按位取反运算符可以用于反转整数的所有位,包括符号位。但结果的解释取决于具体的编程语言和系统。在大多数情况下,结果会以补码形式表示。 sofia trustguru.com.br Superbet trustguru.com.br isabela trustguru.com.br

二、移位运算符

左移运算符(<<):

a = 10  # 二进制表示为 1010
result = a << 2
print(result)  # 输出 40,二进制表示为 101000

左移运算符(<<)将二进制数的各个位向左移动指定的位数,并在右侧用零填充空位。左移运算的结果相当于将原数乘以 2 的移位次数。 bonus trustguru.com.br fernanda trustguru.com.br fernanda trustguru.com.br

在上述示例中,我们有一个变量 a,它的二进制表示是 1010。我们将使用左移运算符将 a 左移 2 位。

我们可以按位对 a 进行左移操作,并在右侧用零填充空位: slot trustguru.com.br KTO trustguru.com.br

   a:  1  0  1  0    (二进制)
------------------
result:  1  0  1  0  0  0    (二进制)

通过左移操作,我们得到了 101000。这个结果的十进制表示为 40Bet365 trustguru.com.br cassinos trustguru.com.br pesquisa trustguru.com.br

因此,将变量 a 左移 2 位后,我们得到了结果 40,二进制表示为 101000autores trustguru.com.br jogue trustguru.com.br pragmaticplay trustguru.com.br Energiabet trustguru.com.br Caça-níqueis trustguru.com.br

左移运算符可以将二进制数向左移动,并在右侧用零填充空位,相当于将原数乘以 2 的移位次数。

右移运算符(>>):

a = 10  # 二进制表示为 1010
result = a >> 2
print(result)  # 输出 2,二进制表示为 10

右移运算符(>>)将二进制数的各个位向右移动指定的位数。对于有符号数,使用算术右移,即保留符号位。对于无符号数,使用逻辑右移,即在左侧用零填充空位。右移运算的结果相当于将原数除以 2 的移位次数。

在上述示例中,我们有一个变量 a,它的二进制表示是 1010。我们将使用右移运算符将 a 右移 2 位。 jogodotigrinhodemo trustguru.com.br jogosdemopg trustguru.com.br Betano trustguru.com.br

我们可以按位对 a 进行右移操作: bruno trustguru.com.br

   a:  1  0  1  0    (二进制)
------------------
result:  1  0    (二进制)

通过右移操作,我们得到了 10。这个结果的十进制表示为 2slots trustguru.com.br pragmatic trustguru.com.br demo trustguru.com.br slotsdemo trustguru.com.br

因此,将变量 a 右移 2 位后,我们得到了结果 2,二进制表示为 10pedro trustguru.com.br

右移运算符可以将二进制数向右移动,对于有符号数会保留符号位,对于无符号数会在左侧用零填充空位,相当于将原数除以 2 的移位次数。 bonus trustguru.com.br ana trustguru.com.br demotigrinho trustguru.com.br plataformademográtis trustguru.com.br tigrinho gratis trustguru.com.br a5game trustguru.com.br pg trustguru.com.br

当对一个二进制数进行右移操作时,最右边的位将被丢弃并且被移出。右移操作会将所有位向右移动指定的位数,并在左侧用零填充空位。 JogodoTigrinho trustguru.com.br jogos trustguru.com.br como trustguru.com.br demo trustguru.com.br pg trustguru.com.br carlos trustguru.com.br pglucky88 trustguru.com.br

   a:  1  1  1  0  1  0    (二进制)
------------------
result:  1  1  1  0    (二进制)
12目录 0
    讨论 我来说一句 发布发表评论 发布Python 1等 1 人为本文章充电 Game not over. 关注