位运算是直接对内存中的二进制位进行操作,因此,它的运算效率相比一般的数学运算是比较高的。一般情况下,位运算主要分为六种:与运算、或运算、异或运算、取反运算、左移运算、右移运算。

在开始之前,先介绍一下将十进制转换成二进制的方法。为节约篇幅说明后面的内容,此处我们直接使用 python 内置的 bin() 函数将整数转换为二进制。

注意:若操作系统为32位,则二进制根据位数补全32位即可,以下用低位说明问题,如 10 的二进制计算出为 1010,则补全32位应为 00000000000000000000000000001010。

def toBin(num):# 十进制转换成二进制res = bin(int(num))# 去掉前两位,因为内置函数转换后前面两个字符是0breturn res[2:]if __name__ == '__main__':print toBin(10)

1、与运算

def toBin(num):# 十进制转换成二进制res = bin(int(num))# 去掉前两位,因为内置函数转换后前面两个字符是0breturn res[2:]if __name__ == '__main__':print toBin(10)#结果10的二进制是1010print toBin(8)#结果8的二进制是1000#根据二进制“与”的计算规则:两个数的相同位都为1时则对比结果为1,否则为0#对比结果:1000 转为10进制也就是8print 10 & 88

2、或运算

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def toBin(num):# 十进制转换成二进制res = bin(int(num))# 去掉前两位,因为内置函数转换后前面两个字符是0breturn res[2:]if __name__ == '__main__':print toBin(10)#结果10的二进制是1010print toBin(8)#结果8的二进制是1000#根据二进制“或”的计算规则:对应的两个二进位有一个为1时结果位就为1,否则为0#对比结果:1010 转为10进制也就是10print 10 | 810

3、异或运算

def toBin(num):# 十进制转换成二进制res = bin(int(num))# 去掉前两位,因为内置函数转换后前面两个字符是0breturn res[2:]if __name__ == '__main__':print toBin(10)#结果10的二进制是1010print toBin(8)#结果8的二进制是1000#根据二进制“异或”的计算规则:两个对应的二进位相异时结果为1,否则为0#对比结果:0010 转为10进制也就是2print 10 ^ 82

4、取反运算

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# 正数按位取反
def toBin(num):# 十进制转换成二进制res = bin(int(num))# 去掉前两位,因为内置函数转换后前面两个字符是0breturn res[2:]if __name__ == '__main__':print toBin(10)#结果10的二进制是1010#根据二进制“正数取反”的计算规则:首先 10 为正数它的补码应该为 01010,#紧接着按位取反为 10101,再转为原码为 11010,再对原码加1为11011,则最后结果为 -11print ~10-11#也可以直接使用公式计算:~10 = -(10 + 1)

5、左移运算

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def toBin(num):# 十进制转换成二进制res = bin(int(num))# 去掉前两位,因为内置函数转换后前面两个字符是0breturn res[2:]if __name__ == '__main__':print toBin(10)#结果10的二进制是1010#根据二进制“左移”的计算规则:将位数将左移动,遵循低位补0、高位丢弃#向左移动一位#对比结果:01010 转为10进制也就是20print 10 << 120

6、右移运算

def toBin(num):# 十进制转换成二进制res = bin(int(num))# 去掉前两位,因为内置函数转换后前面两个字符是0breturn res[2:]if __name__ == '__main__':print toBin(10)#结果10的二进制是1010#根据二进制“右移”的计算规则:将位数向右移动,遵循低位丢弃、高位补0或补1(正数补0、负数补1)#向右移动一位#对比结果:0101 转为10进制也就是5print 10 >> 15

Python 基础教程:位运算的奥妙相关推荐

  1. Python 中的位运算-基础知识

    目录 1.编码基础知识-原码.反码.补码 1.1 原码 1.2 反码 1.3 补码 2.Python 中的位运算 2.1 左移运算符(<<) 2.2 右移运算符(>>) 2.3 ...

  2. python基础(四)python中的位运算

    (一)python中的位运算   位运算即按位(bitwise)运算,python中的位运算符有&.|.^.~.>>.<<.具体的:   & 按位与运算符:参与 ...

  3. Python基础教程学习笔记:第一章 基础知识

    Python基础教程 第二版 学习笔记 1.python的每一个语句的后面可以添加分号也可以不添加分号:在一行有多条语句的时候,必须使用分号加以区分 2.查看Python版本号,在Dos窗口中输入&q ...

  4. python input与返回值-Python基础教程之输入输出和运算符

    在我们python中输入输出函数在程序中运用较为广泛,运算符常用于if判断的条件中,今天我来给大家讲解这两项概念. input输入和print输出 input()输入函数 从标准输入设备(一般指键盘) ...

  5. c++如何让字符串重复输出_如何入门Python之自学python基础教程送你参考

    随着人工智能的发展,Python近两年也是大火,越来越多的人加入到Python学习大军,对于毫无基础的人该如何入门Python呢?这里整理了一些个人经验和Python入门教程供大家参考. 什么是算法 ...

  6. Python基础教程-菜鸟教程学习笔记1

    Python基础教程-菜鸟教程学习笔记1 文章目录 Python基础教程-菜鸟教程学习笔记1 前言 Python 简介 1. 第一个Python程序 2. Python 中文编码 3. 基本语法 1) ...

  7. python办公自动化知识点_Python自动化办公知识点整理汇总|python基础教程|python入门|python教程...

    https://www.xin3721.com/eschool/pythonxin3721/ 知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? ​ 这可能是很多非IT职场人士面临的困 ...

  8. Python零基础速成班-第2讲-Python基础(上),运算、变量、数据类型、输入输出

    Python零基础速成班-第2讲-Python基础(上),运算.变量.数据类型.输入输出 学习目标 使用print输出结果 运算及运算符 变量 数据类型(4种最常用的) 输入输出 课后作业(4必做+1 ...

  9. python基础教程博客_python基础教程(一)

    之所以选择py交易有以下几点:1.python是胶水语言(跨平台),2.python无所不能(除了底层),3.python编写方便(notepad++等文本编辑器就能搞事情),4.渗透方面很多脚本都是 ...

  10. python基础教程第二版答案-《Python基础教程》(第2版修订版)中要注意的地方...

    想必现在大家学习Python都会用3.0及以上的版本了,虽然2.X的版本依然很多,但是这两年随着部分开源项目不再支持2.X版本,3.X已经成为趋势. 正是在这样的大背景下,我最近用这本<Pyth ...

最新文章

  1. Python再获年度编程语言,微软或成最大赢家
  2. ios之开发屏幕适配和系统版本适配(转载)
  3. QML基础类型之geopath
  4. 利用PostMan 模拟上传/下载文件(亲测)
  5. C++:20---成员变量初始化方式
  6. python sort 逆序_python实现·十大排序算法之插入排序(Insertion Sort)
  7. mysql 时间计算函数_MySQL时间计算函数DATE_SUB()用法简介说明
  8. 22年国内最牛的Java面试八股文合集(全彩版),不接受反驳
  9. 【Unity3D插件】FancyScrollView插件分享《通用UI滑动列表》
  10. 透过表象看本质!?之三——Kalman滤波
  11. 洛谷 P3110 [USACO14DEC]驮运Piggy Back spfa
  12. 计算机病毒中的后门病毒,国家计算机病毒中心发现恶意后门程序新变种
  13. Centos7.2修复yum
  14. docker ps 命令显示格式化和显示完整信息
  15. Redefinition of typedef is a C11 feature
  16. JSON+AJAX+ThreadLocal+文件上传下载
  17. 计算机显示适配器禁用了电脑黑屏,Win10电脑禁用集成显卡后黑屏如何解决_Win10系统禁用集成显卡后黑屏解决方案...
  18. 7-20 帅到没朋友
  19. 机器学习 | MATLAB实现MLP多层感知机newff参数设定(上)
  20. Shader 学习笔记:杂记

热门文章

  1. c语言中数组名a和a详细介绍
  2. 现代密码学应用的范例-PGP
  3. 阿里技术嘉年华-aDev内容感悟
  4. 怎样得到select所有option里的值
  5. python画哪吒_用Python爬取暑期档大火的《哪吒》,20W+评论数据,我们分析一波...
  6. 回调函数 相当于线程_Java中的回调机制,这篇给你整的明明白白的
  7. 正数、负数、和小数正则表达式 ios_【3-17】使用正则表达式去掉字符串间的各种符号...
  8. 【MM】 基于收货的发票校验
  9. 【经济法常识转摘】借款人逾期不还钱,利率如何确定?
  10. ABAP 如何实现屏幕字段不可输入