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 = 0

c = 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 = 0

c = 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 = 0

c = 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 = 0

c = ~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 = 0

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

输出结果如下:

5 - c 的值为: 240

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

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

a = 60       # 60 = 0011 1100
c = 0

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

输出结果如下:

6 - c 的值为: 15

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一款C#开源、简单、免费的屏幕录制和GIF动画制作神器

前言 今天要给大家推荐一款由C#语言开发且开源的操作简单、免费的屏幕录制和GIF动画制作神器&#xff1a;ScreenToGif 。 工具介绍 ScreenToGif 是一款免费的开源屏幕录制和GIF 制作工具。它可以帮助用户捕捉计算机屏幕上的实时动画&#xff0c;并将其保存为高质量的 GIF 图像…

【鸟哥】Linux笔记-硬件搭配

在Linux这个系统当中&#xff0c;几乎所有的硬件设备文件都在/dev这个目录内。打印机与软盘呢&#xff1f;分别是/dev/lp0, /dev/fd0。 几个常见的设备与其在Linux当中的文件名&#xff1a; 如果你的机器使用的是跟网际网络供应商 &#xff08;ISP&#xff09; 申请使用的云端…

Unity【入门】脚本基础

Unity脚本基础 文章目录 1、脚本基本规则1、创建规则2、MonoBehavior基类3、不继承MonoBehavior的类4、执行的先后顺序5、默认脚本内容 2、生命周期函数1、概念2、生命周期函数有哪些3、生命周期函数支持继承多态 3、Inspector窗口可编辑的变量4、Mono中的重要内容1、重要成员2…

thinkphp6 queue队列的maxTries自定义

前景需求&#xff1a;在我们用队列的时候发现maxtries的个数时255次&#xff0c;这个太影响其他队列任务 我目前使用的thinkphp版本是6.1 第一部定义一个新的类 CustomDataBase&#xff08;我用的mysql数据库存放的队列&#xff09; 重写__make 和createPlainPayload方法 …

第10周 企业认证、分布式事务,分布式锁方案落地

第10周 企业认证、分布式事务&#xff0c;分布式锁方案落地 ********************************************************************************************** 本周我们将对企业入驻认证的流程进行落地&#xff0c;并且结合分布式缓存中间件Redis与Redisson进行相关的技术方…

Easy RoCE:在SONiC交换机上一键启用无损以太网

RDMA&#xff08;远程直接内存访问&#xff09;技术是一种绕过 CPU 或操作系统&#xff0c;在计算机之间直接传输内存数据的技术。它释放了内存带宽和 CPU&#xff0c;使节点之间的通信具有更低的延迟和更高的吞吐量。目前&#xff0c;RDMA 技术已广泛应用于高性能计算、人工智…

web项目规范配置(husky、eslint、lint-staged、commit)

背景&#xff1a; 团队开发为了保证提交代码格式统一&#xff0c;通常在进行代码提交的时候对暂存区代码进行校验&#xff0c;如没有通过eslint(本例使用eslint)校验&#xff0c;则不能提交到远端。 安装依赖 husky 、eslint 、prettier 、lint-staged npm install husky e…

【Uniapp小程序】自定义导航栏uni-nav-bar滚动渐变色

效果图 新建activityScrollTop.js作为mixins export default {data() {return {navBgColor: "rgba(0,0,0,0)", // 初始背景颜色为完全透明navTextColor: "rgba(0,0,0,1)", // 初始文字颜色};},onPageScroll(e) {// 设置背景const newAlpha Math.min((e.s…

手机耳机哪个品牌音质好

在寻找音质出色的手机耳机时&#xff0c;品牌选择显得尤为重要。市场上众多知名品牌提供了各式各样的耳机产品&#xff0c;它们在音质、降噪功能、设计等方面各有千秋。以下是一些在音质上表现优异的手机耳机品牌的分析&#xff1a; 索尼&#xff1a;索尼的耳机以其卓越的降噪技…

Django企业招聘后台管理系统开发实战四

前言 首先我们看一下产品的需求背景&#xff0c;这个产品为了解决招聘面试的过程中&#xff0c;线下面试管理效率低&#xff0c;面试过程和结果不方便跟踪的痛点 招聘管理的系统几乎是每一家中小公司都需要的产品 我们以校园招聘的面试为例子来做 MVP 产品迭代 首先我们来看一下…

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

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

容量为0多线程操作的SynchronousQueue(FIFO)

一:简介 SynchronousQueue是一个没有数据缓冲的BlockingQueue,生产者线程对其的插入操作put必须等待消费者的移除操作take。SynchronousQueue的优点在于其直接性和高效性,它实现了线程间的即时数据交换,无需中间缓存,确保了数据传输的实时性和准确性,同时,其灵活的阻塞机…

恒压频比开环控制系统Matlab/Simulink仿真分析(SVPWM控制方式)

一、SVPWM 交流电机需要输入三相正弦电流的最终目的就是在电机空间形成圆形磁场&#xff0c;从而产生恒定的电磁转矩。把逆变器和交流电机视为一个整体&#xff0c;以圆形旋转磁场为目标来控制逆变器的工作&#xff0c;这种控制方法称为“磁链跟踪控制”&#xff0c;磁链轨迹的…

洛谷P1035 级数求和 题解

#题外话&#xff08;第42篇题解&#xff09; #先看题目 题目链接https://www.luogu.com.cn/problem/P1035#思路 没啥思路&#xff0c;这其实偏向模拟一点&#xff0c;按照题目说的做就行了。 #代码 原来是这个熊样的&#xff08;都能AC&#xff0c;优化的问题&#xff09; …

九阳股份的“而立危机”:业绩三连降,押注清洁赛道迷雾重重?

“致敬伟大的小问题”&#xff0c;这是步入而立之年的九阳股份&#xff08;SZ:002242&#xff0c;下同“九阳”&#xff09;新品发布会的主题&#xff0c;也是九阳过去30年发展历程的缩影。 在经历“宅经济”催生的流量井喷期后&#xff0c;厨房小家电市场受困于热度退潮的浅滩…

【spring】Spring Boot3.3.0发布啦

spring最新版本 springboot官网&#xff1a;Spring Boot :: Spring Boot Spring Boot 3.3 发行说明&#xff1a;https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.3-Release-Notes 开发环境的要求对比表 Spring BootJDKSpringMavenGradle3.3.017 ~ 226.1…

《Ai企业级知识库》rasa-action编写顺序+实体拿取+rasa-X替代品+使用mysql作为知识库存储,根据知识库中数据回答

rasa-X替代-&#xff08;预留坑位&#xff09; GitHub - nesterapp/rasa-admin: An open-source alternative for Rasa-X 识别意图 小鸭子&#xff1a;ner_duckling(组件) 查找表&#xff1a;lookup tables ner_crf &#xff08;可以是那种可列举的列表类型&#xff09; 定…

C# 类型系统

1. 隐式类型 c#允许使用 var 声明变量&#xff0c;编译期会通过初始化语句右侧的表达式推断出变量的类型。 // i is compiled as an int var i 5;// s is compiled as a string var s "Hello";// a is compiled as int[] var a new[] { 0, 1, 2 };// expr is co…

TLS 协议流程

TLS 协议流程 背景简介TLS-RSATLS-DH总结 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗的日子。本文内容并非完全…

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

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