Python3位运算符

前言

本文介绍的是位运算符,位运算可以理解成对二进制数字上的每一个位进行操作的运算,位运算分为 布尔位运算符 和 移位位运算符。

文章目录

  • 前言
  • 一、位运算概览
    • 1、布尔位运算符
      • 1)按位与运算符 ( & )
      • 2)按位或运算符 ( | )
      • 3)按位异或运算符( ^ )
      • 4)按位取反运算符( ~ )
    • 2、移位运算符
      • 1)左移动运算符( << )
      • 2)右移动运算符( >> )

在这里插入图片描述

一、位运算概览

1、布尔位运算符

1)按位与运算符 ( & )

定义描述:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0。
两个数 按位与 操作如下:

a = 60           # 60 = 0011 1100 
b = 13           # 13 = 0000 1101 
c = 0c = a & b        # 12 = 0000 1100 
print ("1 - c 的值为:", c)

输出结果如下:

1 - c 的值为: 12

2)按位或运算符 ( | )

定义描述:只要对应的二个二进位有一个为1时,结果位就为1。
两个数 按位或 操作如下:

a = 60          # 60 = 0011 1100
b = 13          # 13 = 0000 1101
c = 0c = a | b       # 61 = 0011 1101 
print ("2 - c 的值为:", c)

输出结果如下:

2 - c 的值为: 61

3)按位异或运算符( ^ )

定义描述:当两对应的二进位相异时,结果为1。
两个数 按位异或 操作如下:

a = 60     # 60 = 0011 1100
b = 13     # 13 = 0000 1101
c = 0c = a ^ b      # 49 = 0011 0001 
print ("3 - c 的值为:", c)

输出结果如下:

3 - c 的值为: 49

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

定义描述:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1
两个数 按位取反 操作如下:

a = 60     # 60 = 0011 1100
c = 0c = ~a       # -61 = 1100 0011 
print ("4 - c 的值为:", c)

输出结果如下:

4 - c 的值为: -61

注意:这里 ~a 代表是对二进制数 00111100 取反,直观感受应该是 11000011 ,即 -67。但实际输出的却是 -61, 这是为什么呢?是因为计算机中,二进制编码是采用补码的形式表示的,补码定义如下:
正数的补码是它本身,符号位为 0;负数的补码为正数数值二进制位取反后加一,符号位为一;
我们对 a求反的过程如下:(这里的过程可能有误,有问题欢迎讨论

  0011 1100     # a的初始值
---------------0011 1100     # a初始值的补码,正数的补码是它本身
---------------
~  1100 0011     # 对a的每一位取反
---------------1011 1100     # a取反后的数值的补码表示 11 1100  = 60, 符号位为1,即 -60。
---------------1011 1101     # 负数的补码为正数数值二进制位取反后加一,所以11 1101= 61,符号位为1,即 -61。

所以我们的-61就是这么来的。

2、移位运算符

1)左移动运算符( << )

    定义描述:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。

一个数 左移动运算 操作如下:

a = 60       # 60 = 0011 1100
c = 0c = a << 2     # 240 = 1111 0000 print ("5 - c 的值为:", c)

输出结果如下:

5 - c 的值为: 240

2)右移动运算符( >> )

定义描述:把">>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数。低位丢弃,高位补0。
一个数 右移动运算 操作如下:

a = 60       # 60 = 0011 1100
c = 0c = a >> 2     # 15 = 0000 1111 print ("6 - c 的值为:", c)

输出结果如下:

6 - c 的值为: 15

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/337433.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【设计模式深度剖析】【5】【结构型】【桥接模式】| 以电视和遥控器为例加深理解

&#x1f448;️上一篇:组合模式 | 下一篇:外观模式&#x1f449;️ 设计模式-专栏&#x1f448;️ 目 录 桥接模式(Bridge Pattern)定义英文原话是&#xff1a;直译理解 4个角色UML类图代码示例 应用优点缺点使用场景 示例解析&#xff1a;电视和遥控器UML类图 桥接模式…

5G NR TAE TEST

环境配置&#xff1a; 测试TAE时&#xff0c;需要比对不同的Antenna Port之间的差异来测试 配置DL 2 layer MU的case layer1&#xff1a;通过设置weight&#xff0c;只有一个物理天线上有weight&#xff0c;其他天线上的weight为0&#xff0c;该天线的DMRS DMRS Port设置为1…

lynis安全漏洞扫描工具

Lynis是一款Unix系统的安全审计以及加固工具&#xff0c;能够进行深层次的安全扫描&#xff0c;其目的是检测潜在的时间并对未来的系统加固提供建议。这款软件会扫描一般系统信息&#xff0c;脆弱软件包以及潜在的错误配置。 安装 方式1 git下载使用git clone https://github…

谢宁DOE培训的课程大纲分享

谢宁DOE培训旨在深入讲解谢宁问题解决方法在质量管理中的重要作用&#xff0c;学会如何利用谢宁问题解决方法工具&#xff0c;在不中断生产过程的前提下&#xff0c;找出生产中碰到的复杂而顽固的问题的原因&#xff0c;从而彻底地解决问题。 【课程内容】 第一部分&#xff1…

某咨询公司的大数据解决方案介绍(32页PPT)

方案介绍&#xff1a; 本咨询公司的大数据平台解决方案以企业实际需求为出发点&#xff0c;结合先进的大数据技术和行业经验&#xff0c;为企业提供一站式的大数据服务。通过实时数据收集与处理、深度数据分析与挖掘、可视化数据展示以及灵活的数据应用与扩展&#xff0c;帮助…

vmware workstation 17.0.0 ubuntu删除快照导致无法启动的问题打不开磁盘xxxxxxx或它所依赖的某个快照磁盘

在使用vmware workstation的时候 在我删除多余的快照的时候&#xff0c;发现删除快照后打不开虚拟机了&#xff0c; 提示&#xff1a; 打不开此虚拟磁盘的父磁盘打不开磁盘“D:\Virtual Machines\Ubuntu 64 位\Ubuntu 64 位-000003.vmdk”或它所依赖的某个快照磁盘。模块“Dis…

海外动态IP代理可以用来批量注册邮箱吗?

无论是个人还是企业&#xff0c;都需要使用邮箱进行沟通、注册账号、接收通知等多种用途。然而&#xff0c;由于互联网服务商为了防止滥用和垃圾邮件的传播&#xff0c;通常对注册邮箱设置了一定的限制&#xff0c;如IP限制、验证码验证等。为了解决这些问题&#xff0c;海外动…

2.2 Docker安装redis

2.2 Docker安装redis 1.安装redis docker run --restartalways -p 6379:6379 --name myredis -d redis:7.0.12 --requirepass Hgh675667%–restartalways 开机自启动 -p 6379:6379 端口映射 –name myredis 容器名称 -d redis:7.0.12 redis版本 –requirepass Hgh675667% 密…

【网络安全的神秘世界】在win11搭建pikachu靶场

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 下载pikachu压缩包 https://github.com/zhuifengshaonianhanlu/pikachu 下载好的pikachu放在phpstudy_pro/www目录下 创建pikachu数据库 打开phpstudy软件…

智慧医院物联网建设-统一管理物联网终端及应用

近年来&#xff0c;国家卫健委相继出台的政策和评估标准体系中&#xff0c;都涵盖了强化物联网建设的内容。物联网建设已成为智慧医院建设的核心议题之一。 作为医院高质量发展的关键驱动力&#xff0c;物联网的顶层设计与网络架构设计规划&#xff0c;既需要结合现代信息技术的…

去掉el-table表头右侧类名是gutter,width=17px的空白区域(包括表头样式及表格奇偶行样式和表格自动滚动)

代码如下&#xff1a; <el-table:data"tableData"ref"scroll_Table":header-cell-style"getRowClass":cell-style"styleBack"height"350px"style"width: 100%"><el-table-column prop"id" l…

C# 校验Json格式

错误json&#xff1a;错误值 -2146.379 [{"Key": "surface_heights_average","Value": "-2122.739nm","Description": "surface_heights_average"}, {"Key": "surface_heights_max","V…

项目纪实 | 版本升级操作get!GreatDB分布式升级过程详解

某客户项目现场&#xff0c;因其业务系统要用到数据库新版本中的功能特性&#xff0c;因此考虑升级现有数据库版本。在升级之前&#xff0c;万里数据库项目团队帮助客户在本地测试环境构造了相同的基础版本&#xff0c;导入部分生产数据&#xff0c;尽量复刻生产环境进行升级&a…

HBase分布式数据库入门到精通

文章目录 HBase分布式数据库入门到精通 一、简单介绍 二、HBase数据模型 三、HBase的架构 四、HBase写操作流程 五、HBase读操作流程 六、HBase minor小合并和major大合并 七、HBase目标表meta表 八、HBase特点 九、HBase的使用场景 HBase分布式数据库入门到精通 一、…

HTML静态网页成品作业(HTML+CSS)—— 冶金工程专业展望与介绍介绍网页(2个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有2个页面。 二、作品演示 三、代…

【Python】如何使用 Python 自动发送每日电子邮件报告

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

安全风险 - 检测设备是否为模拟器

在很多安全机构的检测中&#xff0c;关于模拟器的运行环境一般也会做监听处理&#xff0c;有的可能允许执行但是会提示用户&#xff0c;有的可能直接禁止在模拟器上运行我方APP 如何判断当前 app 是运行在Android真机&#xff0c;还是运行在模拟器? 可能做 Framework 的朋友思…

输入输出安全防护指南

输入输出安全防护指南 在现代网络应用程序中&#xff0c;输入输出的安全性是至关重要的。未经验证的输入和未编码的输出可能导致严重的安全漏洞&#xff0c;如SQL注入、跨站脚本攻击&#xff08;XSS&#xff09;等。本文将详细讨论如何通过输入验证和输出编码来确保应用程序的…

数模混合芯片之可靠性设计

一、可靠性设计目的 数模混合芯片设计之所以需要可靠性设计&#xff0c;主要原因有以下几点&#xff1a; 工艺与环境影响&#xff1a; 半导体制造工艺存在着不可避免的随机和系统性偏差&#xff0c;这可能导致芯片内部的模拟电路和数字电路参数发生变化&#xff0c;影响性能…

出吉林大学计算机考研资料适用于计专966/计学941/软专967

本人是24上岸吉大计算机专硕的考生&#xff0c;先上成绩&#xff1a; 出专业课备考过程的相关笔记资料&#xff0c;也可以提供经验分享等&#xff1a; 吉林大学计算机数据结构基础算法ADL汇总&#xff0c;适用于计专966/计学941/软专967综合整理小绿书以及期末题上重难点算法…