一·位运算符
python中位运算按照数据在内存中的二进制位(Bit)进行操作,它一般用于底层开发(算法设计、驱动、图像处理、单片机等),在应用层开发(Web 开发、Linux 运维等)中并不常见。
Python 位运算符只能用来操作整数类型,它按照整数在内存中的二进制形式进行计算。
符号 |
名称 |
描述 |
& |
按位与 |
只有两边二进制位数均为1时,输出才为1 |
| |
按位或 |
只要二进制位数有一边为1,输出就为1 |
^ |
按位异或 |
两边的二进制数不同时为1,相同时为0 |
~ |
按位取反 |
加上该符号,如果原本数为正数,则加上一个负号,二进制加1输出。 如果原本数为负数,则加上一个负号,二进制减1输出。 |
<< |
按位左移 |
将各个二进制位全部左移若干位 |
>> |
按位右移 |
将各个二进制位全部右移若干位 |
二·详细说明与代码解释
我们以整数121和122作为例子,bin()方法是获取整数的二进制形式,以下代码中显示的0b是二进制的标志也是代表省略的0。
1·按位与运算符&
通过以上代码可以观察出使用&符号时,只有输入的两边二进制位均为1时,才会输出为1。
整数 |
二进制 |
|
输入1 |
121 |
0b1111001 |
输入2 |
122 |
0b1111010 |
输出3 |
120 |
0b1111000 |
2·按位或运算符|
通过以上代码可以观察出使用|符号时,只要输入的二进制位数有一边为1,输出的二进制就为1。
整数 |
二进制 |
|
输入1 |
121 |
0b1111001 |
输入2 |
122 |
0b1111010 |
输出3 |
123 |
0b1111011 |
3·按位异或运算符^
通过以上代码可以观察出使用^符号时,输入的两边的二进制数不同时输出为1,相同时输出为0。
整数 |
二进制 |
|
输入1 |
121 |
0b1111001 |
输入2 |
122 |
0b1111010 |
输出3 |
3 |
0b0000011 |
4·按位取反运算符~
通过以上代码可以观察出使用~符号时,加上该符号,如果原本数为正数,则加上一个负号,二进制加1输出。
如果原本数为负数,则加上一个负号(负负得正),二进制减1输出。
正数 |
整数 |
二进制 |
输入1 |
121 |
0b1111001 |
输出2 |
-122 |
-0b1111010 |
负数 |
整数 |
二进制 |
输入1 |
-121 |
-0b1111001 |
输出2 |
120 |
0b1111000 |
5·按位左移运算符<<
通过以上代码可以观察出使用<<符号时,将各个二进制位全部左移了3位。
整数 |
二进制 |
|
输入1 |
121 |
0b1111001 |
输出2 |
968 |
0b1111001000 |
6·按位右移运算符>>
通过以上代码可以观察出使用>>符号时,将各个二进制位全部右移了3位(往右移出界限的直接没有了)。
整数 |
二进制 |
|
输入1 |
121 |
0b1111001 |
输出2 |
15 |
0b1111 |