位运算符在刷leetcode和某些极端情况下偶尔会用到。

这里,我用python做一个演示,主要涉及与运算符(&),或运算符(^),进位运算符(<<)

1.与运算符(&)

只有当两个位数相同且都为1时才为1

1&1
#输出为:11&0
#输出为:00&0
#输出为:01&2
#输出为:0

(因为2在二进制下为10,10与1没有相同的位数返回0)

2.或运算符(^)

两个位数不同才为1,见之前的文章(https://blog.csdn.net/weixin_44731100/article/details/89156141)

3.进位运算符(<<)

和十进制一样,用于进位

1<<1
#1向前进一位应该是二进制的10,即为2.所以输出为21<<2
#1向前进二位应该是二进制的100,即为4,所以输出为4

了解了以上原理后,针对面试题:写一个函数求两数之和,要求函数内不得使用加减乘除四则运算。

def add(a,b):while b != 0:#先计算各个位上不同的位数a = a^b# 对于两个数字位上都是1的情况进行进位,并进一步相加b = (a&b)<<1return a

python二进制的位运算符相关推荐

  1. 详解Python中的位运算符规则、原理与用法

    在Python中,位运算符包括位与(&).位或(|).位求反(~).位异或(^).左移位(<<)和右移位(>>). 1. 运算方法与规则 位运算符只能适用于整数,其总体 ...

  2. Python——二进制16位加法器(采用手算二进制加法的过程实现)(tkinter实现)【2021-07-08】

    Python--二进制16位加法器(采用手算二进制加法的过程实现)(tkinter实现) 1.add16bit.py 2.结果示例 3.下篇文章预告 [功能模块作者] CSDN用户(TDTX),TDT ...

  3. Python——二进制8位加法器(采用手算二进制加法的过程实现)(tkinter实现)【2021-07-08】

    Python--二进制8位加法器(采用手算二进制加法的过程实现)(tkinter实现) 1.add8bit.py 2.结果示例 [功能模块作者] CSDN用户(TDTX),TDTX主页--负责加法功能 ...

  4. 分享:Python中的位运算符

    按位运算符是把数字看作二进制来进行计算的.用的不太多,简单了解. 下表中变量 a 为 60,b 为 13二进制格式如下: a = 0011 1100 b = 0000 1101 a&b = 0 ...

  5. python中的位运算符

    很多人最开始接触位运算符的时候,简直就是一脸懵逼,压根就不知道什么跟什么,今天我就来给大家介绍一下,什么是位运算符. 位运算符包括&,|,^,~,<<,>>六种. 在介 ...

  6. 在python中二进制位取反运算如何进行_Python位运算符详解

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

  7. python按位定义数据_《Python3智能数据分析快速入门》—2.2.5 按位运算符

    2.2.5 按位运算符 十进制数被人们广泛使用,但对于计算机而言,二进制数反而是更重要的,计算机的一切计算都建立在二进制数计算的基础上.按位运算是一种将十进制数转为二进制数再进行运算的过程.Pytho ...

  8. Python位运算符详解

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

  9. python学习笔记之运算符

    目录 前言 软件环境 身份运算符 算术运算符 比较运算符 位移运算符 自变运算符 位运算符 逻辑运算符 成员关系运算符 Python真值表 最后 前言 在前面的博文介绍了Python的数据结构之后,接 ...

最新文章

  1. java游戏开发--连连看-让程序运行更稳定、更高效
  2. Nature综述带你读懂微生物在氮循环中的作用
  3. 雷达多普勒频率计算公式_手持式雷达流速仪的监测应用方案
  4. nginx主模块指令
  5. 三维重建面试0:*SLAM滤波方法的串联综述
  6. ssl初一组周六模拟赛【2018.3.17】
  7. Qt文档阅读笔记|Qt工作笔记-setupUi官方解析与实例(widgets中界面与业务分离)
  8. 最便宜、最快和最可靠不可兼得
  9. Hibernate关联关系映射-----基于连接表的单向一对多映射配置
  10. 使用Mysql进行数据管理
  11. [面试] C++ STL(一)—— 向一个vector中添加N个元素,平均的添加的性能是?
  12. 深度学习:词嵌入Embedding
  13. zebra 的Thread机制 -- 003
  14. Unity流水账4:动画
  15. 600岁故宫“新政”“萌萌哒”
  16. 滴滴运营A/Btest城市运营分析
  17. 江西师大计算机系周洁,江西师大2005年学习之星申报者汇总表.doc
  18. 如何组建游戏制作团队?团队人员如何寻找?
  19. [Ubuntu] 在安卓手机中安装 Ubuntu
  20. HttpClient上传文件传入MultipartFile类型

热门文章

  1. JAVA简单连接数据库(Mysql)
  2. 路由器可以当交换机用吗
  3. 增强现实与虚拟现实_增强现实相关的法律问题
  4. 西门子SCL---S7通信
  5. LINK : fatal error LNK1181: cannot open input file “libcurl.lib“
  6. 阿里云天池大赛赛题(深度学习)——人工智能辅助构建知识图谱(完整代码)
  7. 优酷 html flash播放器,优酷播放器提示没有安装flash插件的解决办法
  8. 【计算机网络】吞吐量与瓶颈链路
  9. osChina.net工具
  10. 倍福 BECKHOFF CX9020 是一款适合 DIN 导轨安装的紧凑型以太网控制器,如何做CAN隔离