位运算符
自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501
位运算符是把数字看作二进制数来进行计算的,因此,需要先将要执行运算的数据转换为二进制,然后才能进行执行运算。Python中的位运算符有位与(&)、位或(|)、位异或(^)、取反(~)、左移位(<<)和右移位(>>)运算符。
说明:整型数据在内存中以二进制的形式表示,如7的32位二进制形式如下:
00000000 00000000 00000000 00000111
其中,左边最高位是符号位,最高位是0表示正数,若为1则表示负数。负数采用补码表示,如-7的32位二进制形式如下:
11111111 11111111 11111111 11111001
(1)“位与”运算
“位与”运算的运算符为“&”,“位与”运算的运算法则是:两个操作数据的二进制表示,只有对应数位都是1时,结果数位才是1,否则为0。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同,如图33所示。

图33 12&8的运算过程
(2)“位或”运算
“位或”运算的运算符为“|”,“位或”运算的运算法则是:两个操作数据的二进制表示,只有对应数位都是0,结果数位才是0,否则为1。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同,如图34所示。

图34 4|8的运算过程
(3)“位异或”运算
“位异或”运算的运算符是“^”,“位异或”运算的运算法则是:当两个操作数的二进制表示相同(同时为0或同时为1)时,结果为0,否则为1。若两个操作数的精度不同,则结果数的精度与精度高的操作数相同,如图35所示。

图35 31^22的运算过程
(4)“位取反”运算
“位取反”运算也称“位非”运算,运算符为“~”。“位取反”运算就是将操作数中对应的二进制数1修改为0,0修改为1,如图36所示。

图36 ~123的运算过程
在Python中使用print()函数输出图33~图36的运算结果,代码如下:
print("12&8 = "+str(12&8)) # 位与计算整数的结果
print("4|8 = "+str(4|8)) # 位或计算整数的结果
print("31^22 = "+str(31^22)) # 位异或计算整数的结果
print("~123 = "+str(~123)) # 位取反计算整数的结果
运算结果如图37所示。

图37 图33~图36的运算结果
(5)左移位运算符<<
左移位运算符<<是将一个二进制操作数向左移动指定的位数,左边(高位端)溢出的位被丢弃,右边(低位端)的空位用0补充。左移位运算相当于乘以2的n次幂。
例如,int类型数据48对应的二进制数为00110000,将其左移1位,根据左移位运算符的运算规则可以得出(00110000<<1)=01100000,所以转换为十进制数就是96(48×2);将其左移2位,根据左移位运算符的运算规则可以得出(00110000<<2)=11000000,所以转换为十进制数就是192(48×22)其执行过程如图38所示。

图38 左移位运算
(6)右移位运算符>>
右移位运算符>>是将一个二进制操作数向右移动指定的位数,右边(低位端)溢出的位被丢弃,而在填充左边(高位端)的空位时,如果最高位是0(正数),左侧空位填入0;如果最高位是1(负数),左侧空位填入1。右移位运算相当于除以2的n次幂。
正数48右移1位的运算过程如图39所示。

图39 正数48右移1位的运算过程
负数-80右移2位的运算过程如图40所示。

图40 负数-80右移2位的运算过程

相关文章:
位运算符
自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 位运算符是把数字看作二进制数来进行计算的,因此,需要先将要执行运算的数据转换为二进制,然后才能进行执行运算。…...
云上聚智——移动云云服务器进行后端的搭建及部署
什么是移动云 移动云是指将移动设备和云计算技术相结合,为移动应用提供强大的计算和存储能力的服务模式。传统的移动应用通常在本地设备上进行计算和存储,而移动云将这些任务转移到云端进行处理。通过移动云,移动设备可以利用云端的高性能计算…...
C语言程序的编译
目录 一、预处理(预编译) 二、编译 三、汇编 四,链接 在前面讲到了宏的定义,那么宏在编译时候是如何发生替换的?接下来做一下详细的介绍C语言程序的编译过程主要包括以下几个步骤:预处理、编译、汇编和…...
滴滴三面 | Go后端研发
狠狠的被鞭打了快两个小时… 注意我写的题解不一定是对的,如果你认为有其他答案欢迎评论区留言 bg:23届 211本 社招 1. 自我介绍 2. 讲一个项目的点,因为用到了中间件平台的数据同步,于是开始鞭打数据同步。。 3. 如果同步的时候…...
深度学习之基于Yolov3的行人重识别
欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 行人重识别(Person Re-Identification,简称ReID)是计算机视觉领域…...
防火墙最新技术汇总
防火墙技术持续发展,以应对日益复杂的网络安全威胁。以下是防火墙领域的一些最新技术汇总: 下一代防火墙(NGFW):NGFW结合了传统防火墙的分组过滤和状态检测功能,还集成了深度包检测(DPI…...
PikaUnsafe upfileupload
1.client check 客户端检测,前端js检测,禁用js和修改后缀名即可。 php格式不能上传,我们修改后缀上传。 蚁剑成功连接。 2.MIME type 这个就是 content-type 规定上传类型,上面的方法也能成功,也可以修改 conten-ty…...
git拉取项目前需要操作哪些?
1.输入 $ ssh-keygen -t rsa -C "秘钥说明" 按enter键 2.出现 ssh/id_rsa:(输入也可以不输入也可以) 然后按enter键 3.出现empty for no passphrase:(输入也可以不输入也可以) 然后按enter键 4.出现same passphrase again: (输入也可以不输入也…...
报名开启!2024 开源之夏丨Serverless Devs 课题已上线!
Serverless 是近年来云计算领域热门话题,凭借极致弹性、按量付费、降本提效等众多优势受到很多人的追捧,各云厂商也在不断地布局 Serverless 领域。 Serverless Devs 是一个由阿里巴巴发起的 Serverless 领域的开源项目,其目的是要和开发者们…...
DataBinding viewBinding(视图绑定与数据双向绑定)简单案例 (kotlin)
先上效果: 4个view的文字都是通过DataBinding填充的。交互事件:点击图片,切换图片 创建项目(android Studio 2023.3.1) Build.gradle(:app) 引入依赖库(完整源码) buildFeatures { vie…...
TensorFlow基于anaconda3快速构建
基于python构建太累 Installing Packages - Python Packaging User Guide 使用 pip 安装 TensorFlow 有兴趣自己学,我放弃了 -------------------------------------------------------- 下面基于anaconda 1、下载 Index of /anaconda/archive/ | 清华大学开…...
力扣72-编辑距离
题目链接 记忆化搜索: 解题关键:每次仅考虑两字符串word1、word2分别从0 - i修改成0-j下标的完全匹配(下标表示) 临界条件:当 i 或 j 小于0时,表示该字符串为空,编辑距离确定为 y1 或 x1 int dp[501][501…...
K8S 删除pod的正确步骤
在日常的k8s运维过程中,避免不了会对某些pod进行剔除,那么如何才能正确的剔除不需要的pod呢? 首先,需要查出想要删除的pod # 可通过任意方式进行查询 kubectl get pods -A |grep <podname> kubectl get pods -n <names…...
羊大师分析,羊奶健康生活的营养源泉
羊大师分析,羊奶健康生活的营养源泉 羊奶,作为一种古老的饮品,近年来因其独特的营养价值和健康益处而备受关注。今天,羊大师就来探讨一下羊奶与健康之间的紧密联系。 羊奶富含蛋白质、脂肪、维生素和矿物质等多种营养成分。羊奶…...
刷屏一天GPT-4o,发现GPT4用的都还不熟练?戳这儿
以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮,可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…...
力扣HOT100 - 139. 单词拆分
解题思路: 动态规划 class Solution {public boolean wordBreak(String s, List<String> wordDict) {Set<String> wordDictSet new HashSet(wordDict);boolean[] dp new boolean[s.length() 1];dp[0] true;for (int i 1; i < s.length(); i) {…...
rush 功能特性梳理
Rush 可以让 JavaScript 开发者更轻松地同时构建、发布多个 NPM 包,即将多个包或项目放到一个大仓库下管理。 仅需一次 NPM 安装 仅需一步,Rush 便可以将你项目的所有依赖安装到一个公共文件夹下,该文件夹并不像 “package.json” 一样位于项…...
算法分析与设计复习__递归方程与分治
总结自:【算法设计与分析】期末考试突击课_哔哩哔哩_bilibili 1.递归,递归方程 1.1递归条件: 1.一个问题的解可以分解为几个子问题的解; 2.这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样; 3.存在…...
apk-parse包信息解析
最近公司做项目,需要解析apk包的基本信息,上网找了好多资料,最终决定使用apk-parse。 .yml文件 引入jar包 <dependency> <groupId>net.dongliu</groupId> <artifactId>apk-parser</artifactId> <version&…...
AI绘画进阶工具ComfyUI 傻瓜整合包安装教程!模型共享,一键安装!
哈喽大家好,今天给大家分享一下AI绘画工具Stable Diffusion的另一种UI界面,常见的有: 窗口式界面的WebUI 节点式工作流的ComfyUI ComfyUI更加进阶一些,是一个节点式工作流的AI绘画界面,它高度可定制、自定义编辑Ai生…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
