Python3中的位运算符

一·位运算符

python中位运算按照数据在内存中的二进制位(Bit)进行操作,它一般用于底层开发(算法设计、驱动、图像处理、单片机等),在应用层开发(Web 开发、Linux 运维等)中并不常见。

Python 位运算符只能用来操作整数类型,它按照整数在内存中的二进制形式进行计算。

按位与

只有两边二进制位数均为1时,输出才为1

按位或

只要二进制位数有一边为1,输出就为1

按位异或

两边的二进制数不同时为1,相同时为0

按位取反

将此符号相加,如果原始数字为正数,则添加负号,二进制加1输出。

[En]

Add this symbol, if the original number is positive, then add a negative sign, binary plus 1 output.

如果原始数字为负数,则添加减号和二进制减去1的输出。

[En]

If the original number is negative, add a minus sign and the binary minus 1 output.

按位左移

将所有二进制位左移几位

[En]

Move all the binary bits to the left by several bits

按位右移

将所有二进制位向右移动几位

[En]

Move all the binary bits to the right by several bits

二·详细说明与代码解释

我们以整数121和122作为例子,bin()方法是获取整数的二进制形式,以下代码中显示的0b是二进制的标志也是代表省略的0。

1·按位与运算符&

从上面的代码可以看出,当使用&符号时,只有当输入两端的二进制位都是1时,输出才是1。

[En]

From the above code, we can see that when the & symbol is used, the output is 1 only if the binary bits on both sides of the input are 1.

二进制

输入1

121

0b1111001

输入2

122

0b1111010

输出3

120

0b1111000

2·按位或运算符|

从上面的代码可以看出,当使用|符号时,只要输入二进制的一侧是1,输出二进制就是1。

[En]

From the above code, we can see that when using the | symbol, as long as one side of the input binary is 1, the output binary is 1.

二进制

输入1

121

0b1111001

输入2

122

0b1111010

输出3

123

0b1111011

3·按位异或运算符^

从上面的代码中,我们可以观察到,当使用^符号时,输入两侧的二进制数不会同时输出为1,当它们相同时,输出为0。

[En]

From the above code, we can observe that when using the ^ symbol, the binary numbers on both sides of the input are not output as 1 at the same time, and the output is 0 when they are the same.

二进制

输入1

121

0b1111001

输入2

122

0b1111010

输出3

0b0000011

4·按位取反运算符~

从上面的代码中,我们可以观察到,当使用~符号时,添加符号,如果原始数字是正数,则添加负号,二进制加1输出。

[En]

From the above code, we can observe that when using the ~ symbol, add the symbol, if the original number is positive, then add a negative sign, binary plus 1 output.

如果原始数字为负数,则添加负号(减号为正),然后输出二进制减去1。

[En]

If the original number is negative, add a negative sign (minus is positive), and the binary minus 1 output.

二进制

输入1

121

0b1111001

输出2

-122

-0b1111010

二进制

输入1

-121

-0b1111001

输出2

120

0b1111000

5·按位左移运算符<<

从以上代码中,您可以观察到<

[En]

From the above code, you can observe the use of <

二进制

输入1

121

0b1111001

输出2

968

0b1111001000

6·按位右移运算符>>

从上面的代码可以看出,当使用>>符号时,所有二进制位都向右移动了3位。

[En]

From the above code, we can see that when the > > symbol is used, all the binary bits are moved 3 bits to the right.

二进制

输入1

121

0b1111001

输出2

0b1111

Original: https://blog.51cto.com/u_15320761/5642574
Author: AYO小涛
Title: Python3中的位运算符

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/500184/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球