当前位置: 首页 > news >正文

位运算符

自学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 位运算符是把数字看作二进制数来进行计算的&#xff0c;因此&#xff0c;需要先将要执行运算的数据转换为二进制&#xff0c;然后才能进行执行运算。…...

云上聚智——移动云云服务器进行后端的搭建及部署

什么是移动云 移动云是指将移动设备和云计算技术相结合&#xff0c;为移动应用提供强大的计算和存储能力的服务模式。传统的移动应用通常在本地设备上进行计算和存储&#xff0c;而移动云将这些任务转移到云端进行处理。通过移动云&#xff0c;移动设备可以利用云端的高性能计算…...

C语言程序的编译

目录 一、预处理&#xff08;预编译&#xff09; 二、编译 三、汇编 四&#xff0c;链接 在前面讲到了宏的定义&#xff0c;那么宏在编译时候是如何发生替换的&#xff1f;接下来做一下详细的介绍C语言程序的编译过程主要包括以下几个步骤&#xff1a;预处理、编译、汇编和…...

滴滴三面 | Go后端研发

狠狠的被鞭打了快两个小时… 注意我写的题解不一定是对的&#xff0c;如果你认为有其他答案欢迎评论区留言 bg&#xff1a;23届 211本 社招 1. 自我介绍 2. 讲一个项目的点&#xff0c;因为用到了中间件平台的数据同步&#xff0c;于是开始鞭打数据同步。。 3. 如果同步的时候…...

深度学习之基于Yolov3的行人重识别

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 行人重识别&#xff08;Person Re-Identification&#xff0c;简称ReID&#xff09;是计算机视觉领域…...

防火墙最新技术汇总

防火墙技术持续发展&#xff0c;以应对日益复杂的网络安全威胁。以下是防火墙领域的一些最新技术汇总&#xff1a; 下一代防火墙&#xff08;NGFW&#xff09;&#xff1a;NGFW结合了传统防火墙的分组过滤和状态检测功能&#xff0c;还集成了深度包检测&#xff08;DPI&#xf…...

PikaUnsafe upfileupload

1.client check 客户端检测&#xff0c;前端js检测&#xff0c;禁用js和修改后缀名即可。 php格式不能上传&#xff0c;我们修改后缀上传。 蚁剑成功连接。 2.MIME type 这个就是 content-type 规定上传类型&#xff0c;上面的方法也能成功&#xff0c;也可以修改 conten-ty…...

git拉取项目前需要操作哪些?

1.输入 $ ssh-keygen -t rsa -C "秘钥说明" 按enter键 2.出现 ssh/id_rsa&#xff1a;(输入也可以不输入也可以) 然后按enter键 3.出现empty for no passphrase&#xff1a;(输入也可以不输入也可以) 然后按enter键 4.出现same passphrase again: (输入也可以不输入也…...

报名开启!2024 开源之夏丨Serverless Devs 课题已上线!

Serverless 是近年来云计算领域热门话题&#xff0c;凭借极致弹性、按量付费、降本提效等众多优势受到很多人的追捧&#xff0c;各云厂商也在不断地布局 Serverless 领域。 Serverless Devs 是一个由阿里巴巴发起的 Serverless 领域的开源项目&#xff0c;其目的是要和开发者们…...

DataBinding viewBinding(视图绑定与数据双向绑定)简单案例 (kotlin)

先上效果&#xff1a; 4个view的文字都是通过DataBinding填充的。交互事件&#xff1a;点击图片&#xff0c;切换图片 创建项目&#xff08;android Studio 2023.3.1&#xff09; Build.gradle(:app) 引入依赖库&#xff08;完整源码&#xff09; buildFeatures { vie…...

TensorFlow基于anaconda3快速构建

基于python构建太累 Installing Packages - Python Packaging User Guide 使用 pip 安装 TensorFlow 有兴趣自己学&#xff0c;我放弃了 -------------------------------------------------------- 下面基于anaconda 1、下载 Index of /anaconda/archive/ | 清华大学开…...

力扣72-编辑距离

题目链接 记忆化搜索&#xff1a; 解题关键&#xff1a;每次仅考虑两字符串word1、word2分别从0 - i修改成0-j下标的完全匹配(下标表示&#xff09; 临界条件&#xff1a;当 i 或 j 小于0时&#xff0c;表示该字符串为空&#xff0c;编辑距离确定为 y1 或 x1 int dp[501][501…...

K8S 删除pod的正确步骤

在日常的k8s运维过程中&#xff0c;避免不了会对某些pod进行剔除&#xff0c;那么如何才能正确的剔除不需要的pod呢&#xff1f; 首先&#xff0c;需要查出想要删除的pod # 可通过任意方式进行查询 kubectl get pods -A |grep <podname> kubectl get pods -n <names…...

羊大师分析,羊奶健康生活的营养源泉

羊大师分析&#xff0c;羊奶健康生活的营养源泉 羊奶&#xff0c;作为一种古老的饮品&#xff0c;近年来因其独特的营养价值和健康益处而备受关注。今天&#xff0c;羊大师就来探讨一下羊奶与健康之间的紧密联系。 羊奶富含蛋白质、脂肪、维生素和矿物质等多种营养成分。羊奶…...

刷屏一天GPT-4o,发现GPT4用的都还不熟练?戳这儿

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮&#xff0c;可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…...

力扣HOT100 - 139. 单词拆分

解题思路&#xff1a; 动态规划 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 包&#xff0c;即将多个包或项目放到一个大仓库下管理。 仅需一次 NPM 安装 仅需一步&#xff0c;Rush 便可以将你项目的所有依赖安装到一个公共文件夹下&#xff0c;该文件夹并不像 “package.json” 一样位于项…...

算法分析与设计复习__递归方程与分治

总结自&#xff1a;【算法设计与分析】期末考试突击课_哔哩哔哩_bilibili 1.递归&#xff0c;递归方程 1.1递归条件: 1.一个问题的解可以分解为几个子问题的解&#xff1b; 2.这个问题与分解之后的子问题&#xff0c;除了数据规模不同&#xff0c;求解思路完全一样; 3.存在…...

apk-parse包信息解析

最近公司做项目&#xff0c;需要解析apk包的基本信息&#xff0c;上网找了好多资料&#xff0c;最终决定使用apk-parse。 .yml文件 引入jar包 <dependency> <groupId>net.dongliu</groupId> <artifactId>apk-parser</artifactId> <version&…...

AI绘画进阶工具ComfyUI 傻瓜整合包安装教程!模型共享,一键安装!

哈喽大家好&#xff0c;今天给大家分享一下AI绘画工具Stable Diffusion的另一种UI界面&#xff0c;常见的有&#xff1a; 窗口式界面的WebUI 节点式工作流的ComfyUI ComfyUI更加进阶一些&#xff0c;是一个节点式工作流的AI绘画界面&#xff0c;它高度可定制、自定义编辑Ai生…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用&#xff1a;作为微服务架构的网关&#xff0c;统一入口&#xff0c;处理所有外部请求。 核心能力&#xff1a; 路由转发&#xff08;基于路径、服务名等&#xff09;过滤器&#xff08;鉴权、限流、日志、Header 处理&#xff09;支持负…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵&#xff0c;其中每行&#xff0c;每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid&#xff0c;其中有多少个 3 3 的 “幻方” 子矩阵&am…...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化&#xff1a;从政策驱动到多元盈利 政策全面赋能 2025年4月&#xff0c;国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》&#xff0c;首次明确虚拟电厂为“独立市场主体”&#xff0c;提出硬性目标&#xff1a;2027年全国调节能力≥2000万千瓦&#xff0…...

Git常用命令完全指南:从入门到精通

Git常用命令完全指南&#xff1a;从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库&#xff08;uthash库&#xff09;提供对哈希表的操作&#xff0c;文章如下&#xff1a; C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...