Python的位运算符与移位运算符
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
让我们逐位对 a 和 b 进行按位与运算来计算结果: 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,二进制表示为 0010。 A5game trustguru.com.br plataformademo trustguru.com.br
按位或(OR):
a = 10 # 二进制表示为 1010
b = 6 # 二进制表示为 0110
result = a | b
print(result) # 输出 14,二进制表示为 1110
这里的计算是按位或运算符(|)进行的。按位或运算的规则是,对于两个操作数的每个对应位,只要有一个位上的值为 1,结果的对应位就为 1。否则,结果的对应位为 0。
让我们逐位对 a 和 b 进行按位或运算来计算结果: 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,二进制表示为 1110。 a5game 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
让我们逐位对 a 和 b 进行按位异或运算来计算结果: 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,二进制表示为 1100。 miguel 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,二进制补码表示为 -1011。 Brazino777 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。这个结果的十进制表示为 40。 Bet365 trustguru.com.br cassinos trustguru.com.br pesquisa trustguru.com.br
因此,将变量 a 左移 2 位后,我们得到了结果 40,二进制表示为 101000。 autores 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。这个结果的十进制表示为 2。 slots trustguru.com.br pragmatic trustguru.com.br demo trustguru.com.br slotsdemo trustguru.com.br
因此,将变量 a 右移 2 位后,我们得到了结果 2,二进制表示为 10。 pedro 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