Dotcpp  >  编程教程  >  Python入门语法  >  Python位运算符

Python位运算符

点击打开在线编译器,边学边练

1. 位操作符

位操作符属于操作符中比较难的内容,位操作符以二进制为单位进行运算,操作的对象以及结果都是整数型。位操作符有如下几个:&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、>>(右位移)和<<(左位移)。

具体说明看下表:

运算符名称例子功能
&按位与A&BA和B进行位与运算
|按位或A|BA和B进行位或运算
~按位取反~AA进行取反运算
^按位异或A^BA和B进行位异或运算
>>右位移A>>cA右移c位
<<左位移A<<cA左移c位

依此介绍一下各种位运算。

       1)位与运算(A&B)

位与运算中,A和B按位进行与运算,当每位对应全是1的时候对应结果位1,反之为0

10111001
00100011
00100001

可以看出,当10111001&00100011得到00100011。当对应位同时为1才为1。

       2)位或运算(A|B)

10110010
01011
110
11111110

可以看出,当10110010 | 01011110得到11111110,对应位置存在一个1的时候即为1。

       3)异或位运算(A^B)

10110010
01011110
11101100

可以看出,10110010^01011110得到11101100,对应位置相反的时候,即0对应1,1对应0的时候得到1。

       4)按位取反运算(~A)

01010101
10101010

按位取反的过程中需要运用补码运算,即0补为1,1补为0。

       5)左右位移

右移时,(第一行为移动前,第二行为移动后)


01010101
01010101

右边最低位为溢出位被丢弃,在填充左侧最高位时,如果最高位是0,则填0,如果最高位是1,则填1。右移相当于除上2的n次方。

左移时, (第一行为移动前,第二行为移动后)

00101010

01010100

左边最高位为溢出位被丢弃,在最右边空位补0,左移相当于乘上2的n次方。

这章内容带领大家深入了解计算机世界的0和1,可以选择性去掌握了解,最后来介绍一下运算符的优先级,在算法运算时遇到操作符优先级问题的时候可以参考此表格。







由低到高

<、>、<=、>=、!=、==
|
^
&
<<、>>
+、-
*、/、%、//
~、+、-
**

这一章内容比较抽象,可以反复阅读去掌握它的内容,下一节我们学习Python的控制结构。



本文固定URL:https://www.dotcpp.com/course/229

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Python教程
第一章 Python入门
第二章 Python基础语法
第三章 Python入门语法
第四章 Python核心语法
第五章 Python函数
第六章 Python面向对象编程
第七章 Python模块
第八章 Python异常处理和程序调试
第九章 Python文件及目录操作
第十章 PythonGUI编程
第十一章 Python进程和线程
第十二章 Python数据库管理
第十三章 Python算法
第十四章 Python爬虫
第十五章 Python实战项目
第十六章 后记
Dotcpp在线编译